Python正则的使用方法
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2019-11-16 09:57:56
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
Python正则可以用两种方式使用,直接使用模块级的函数传入正则字符串或先编译成正则对象后再使用,编译的方式可以添加一些匹配模式等功能
创建正则表达式对象时可以使用的匹配标志,多个用 | 分隔同时生效
1).re.I(re.IGNORECASE): 忽略大小写
2).re.M(MULTILINE): 多行模式,改变’^’和’$’的行为
3).re.S(DOTALL): 点任意匹配模式,改变’.’的行为
4).re.L(LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定
5).re.U(UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性
6).re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释
re.match(pattern,string)
从字符串开始进行匹配,如果满足返回一个match对象,如果不满足返回空
re.search(pattern, string)
扫描整个字符串并返回第一个成功的匹配。返回一个match对象,如果不满足返回空
匹配成功re.search方法返回一个匹配的对象,否则返回None
import re v1 = '([\w\(\)\.\-]+)(\[(\>|\>\=|\<|\<\=|\!|\<\>|\>\<|\!?~)\])?' pat = re.compile(v1) fie = 'title[!]' mat = pat.search(fie) print(mat.groups()) print(mat.group(0)) print(mat.group(1)) print(mat.group(2)) print(mat.group(3))
re.findall(pattern,string)
查找所有匹配的字符串并返回一个列表
re.finditer(pattern,string)
查找所有匹配的字符串并作为一个迭代器返回。如果满足返回一个match对象否则返回空,可用a.next遍历
re.sub/subn(pattern,replacestring,string)
前者返回替换后的字符串,后者返回替换的次数
re.split(pattern,string,maxsplit=0)
用一个正则串做为分隔字符分隔字符串为一个列表并返回
match对象的实例方法
MatchObject.group() # 返回被RE匹配的字符串 MatchObject.start() # 返回匹配开始的位置 MatchObject.end() # 返回匹配结束的位置 MatchObject.span() # 返回一个元祖包含匹配(开始, 结束)的位置