欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

re模块与正则

程序员文章站 2022-07-13 12:40:33
...

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