re模块:
findall:返回的是列表
import re ret=re.findall('d+','1111123aded123ad123') print(ret)
search:返回的是对象
ret1=re.search('d+','@1111123aded123ad123') print(ret1.group())
match:返回的也是对象,但是match表示从头匹配
ret2=re.match('d+','1111123aded123ad123')#从头寻找 print(ret2.group()) ret3=re.match('d+','@1111123aded123ad123')#从头寻找 print(ret2.group())#此处打印为错误
sub:相当于字符串中的替代
ret=re.sub('d+','H','1111123aded123ad123') print(ret)
subn:替代几次
ret=re.subn('d+','H','1111123aded123ad123',2) print(ret)
split:按照正则进行切割
ret=re.split('d+','1111123aded123ad123') print(ret)
compile:将正则编译成变量,节省时间效率
ret=re.compile('d+') c=ret.search('11112223a11') print(c.group())
finditer:节省空间效率,生成一个迭代器
finditer ret=re.finditer('d','123asdad') for el in ret: print(el.group())
对于分组()在python中re模块的特殊运用:
findall会优先显示分组中的内容,要想取消分组优先,利用?:取消
split遇到分组,会保留分组内被切掉的内容
search遇到分组,通过group(n)可以拿到group中的匹配内容
正则表达式的运用:
(?P<name>)表示给分组起名字
(?P=name)表示使用这个分组,这里匹配到的内容应该与分组中的内容相同