python正则 re 模块函数

  • 正则表达式通用

  • python正则表达式,依赖python中 re 模块

  • re模块python 自带不用安装

  • import re # 使用前得导入模块

1. match () 函数

# 从起始位置开始匹配

re.match ( pattern, string, flags=0)

# 返回对象, group() 取值

参数:

  • patter : 匹配的正则表达式

  • string : 要匹配的字符串

  • flags: 标志位, 用于控制正则表达式匹配的方式————》换行,大小写匹配

    • re.I 忽略大小写

    • re.L 做本地用户识别

    • re.M 多行匹配,影响 ^ 和 $

    • re.S 使 . 匹配包括换行符在内的所有字符 ----》 . 可以匹配到

    • re.U 根据Unicode 字符集解析字符 ,影响 w W  B

    • re.X 使我们以便灵活的格式理解表达式

2. serch () 函数

# 匹配整个字符串, 并返回第一个匹配成功的元素

re.serch ( pattern, string, flags=0 )

# 返回对象, group() 取值

参数:

  • patter : 匹配的正则表达式
  • string : 要匹配的字符串
  • flags: 标志位, 用于控制正则表达式匹配的方式————》换行,大小写匹配

3. findall () 函数 ------- 常用

# 匹配整个字符串,并返回匹配到的所有数据,返回列表

re.findall ( pattern, string, flags=0 )

# 返回列表, 取值 [下标]

参数:

  • patter : 匹配的正则表达式
  • string : 要匹配的字符串
  • flags: 标志位, 用于控制正则表达式匹配的方式————》换行,大小写匹配

4. compile () 函数

# 编译正则表达式,生成一个 Pattern 对象

re.compile( 正则表达式 , flags=0)

# 用法 
pattern = re.compile(r'd+')

# 用编译后的正则表达式去调用方法, 在str 中匹配
s = pattern.match( str )


在上面,我们已将一个正则表达式编译成 Pattern 对象,接下来,我们就可以利用 pattern 的一系列方法对文本进行匹配查找了。

Pattern 对象的一些常用方法主要有:

  • match 方法:从起始位置开始查找,一次匹配
  • search 方法:从任何位置开始查找,一次匹配
  • findall 方法:全部匹配,返回列表
  • finditer 方法:全部匹配,返回迭代器
  • split 方法:分割字符串,返回列表
  • sub 方法:替换

5. split () 函数

# split 方法按照能够匹配的子串将字符串分割后 返回列表

re.split( pattern , maxsplit = 最大)

参数:

  • patter : 匹配的正则表达式
  • maxsplit : 用于指定最大分割次数,不指定将全部分割。

6 . sub () 函数

# 用于替换

re.sub( pattern, repl, string, count=0, flags=0)

# re.sub( 旧字符串, 新字符串,在string中匹配, 最大替换次数, 标志位)

参数:

  • pattern : 可以是一个字符串也可以是一个正则,用于匹配要替换的字符

  • repl : 将会被替换的值,repl可以是字符串也可以是一个方法

  • string : 范围,在什么里面匹配

  • count :用于指定最多替换次数,不指定时全部替换。

  • flags : 标志位, 用于控制正则表达式匹配的方式————》换行,大小写匹配

7. 匹配中文

在某些情况下,我们想匹配文本中的汉字,有一点需要注意的是,

中文的 unicode 编码范围 主要在 [u4e00-u9fa5],

这里说主要是因为这个范围并不完整,比如没有包括全角(中文)标点,不过,在大部分情况下,应该是够用的。

假设现在想把字符串 title = u'你好,hello,世界' 中的中文提取出来,可以这么做:

import re

title = '你好,hello,世界'
pattern = re.compile(r'[u4e00-u9fa5]+')
result = pattern.findall(title)

print (result)

注意到,我们在正则表达式前面加上了两个前缀 ur,其中 r 表示使用原始字符串,u 表示是 unicode 字符串。

原文地址:https://www.cnblogs.com/aaak/p/14084883.html