Python 正则表达

Python 使用re 模块提供了正则表达式处理的能力

re.M                         多行模式
re.MULTILNE
re.S                         单行模式
re.DOTALL      
re.I                         忽略大小写
re.IGNORECASE
re.X                         忽略表示式中的空白字符
re.VERBOSE
使用 | 位 或 / 运算开启多种选项

方法

编译

re.compile(patten,flags=0)

设定flags, 编译模式,返回正则表达式对象regex。

pattern 就是正则表达式字符串,flags是选项。正则表达需要被编译,为了提高提高效率,这些编译后的结果被保存,下次使用同样的pattern 的时候,就不需要再次编译。

re的其他方法为了提高效率都调用了编译方法,就是为了提速。

单次匹配

re.march(pattern,string,flags=0)
regex.match(string[,pos[,endpos]])
match匹配从字符串开头匹配,regex对象match 方法可以重设定开始位置和结束位置。返回match对象
re.search(pattern,string,flags=0)
regex.search(string[,pos[,endpod]])
从头搜索直到第一个匹配,regex对象search方法可以重设定开始位置和结束位置,返回match对象
re.fullmatch(pattern,string,flags=0)
regex.fullmatch(string[,pos[,endpos]])
整个字符串和正则表达式匹配

全文搜索

re.findall(pattern,string,flags=0)
regex.findall(string[,pos[,endpos]])
对整个字符串,从左到右匹配,返回所有匹配的列表
re.finditer(pattern,string,flags=0)
redex.finditer(string[,pos[,endpos]])
对整个字符串,从左到右匹配,返回所有匹配项,返回迭代器。注意每次迭代返回的是match对象

匹配替换

re.sub(pattern,replacement,string,count=0,flags=0)
regex.sub(reglacement,string,count=0)
使用pattern对字符串string 进行匹配,对匹配项使用repl替换。
replacement可以是string, bytes, function.
re.subn(pattern,replacement,string,count=0,flags=0)
regex.subn(replacement,string,count=0)
同sub返回一个元组(new_string,number_of_subs_made)

字符串分割

字符串的分割函数,太难用,不能指定多个字符进行分割。
re.split(pattern,string,maxsplit=0,flags=0)
re.split分隔字符串

分组

使用小括号的pattern 捕获的数据被放到了组group 中。
match ,search 函数可以返回match 对象;findall 返回字符串列表;finditer 返回一个个match 对象

如果pattern 中使用哦分组,如果有匹配的结果,会在match 对象中
1、使用group(N)方式返回对应分组,1-N 是对应的分组,0返回整个匹配的字符串
2、如果使用了命名分组,可以使用group('name') 的方式取分组
3、也可以使用groups()返回多有分组
4、使用groupdict()返回所有命名的分组

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券