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)表示使用这个分组,这里匹配到的内容应该与分组中的内容相同