re正则匹配

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-29 04:41:09
import re  #导入re
a=re.findall("picture","picture what i find")  #re模块  re.findall("匹配规则","匹配规则所在字符串")
print(a)

1、^元字符:字符串开始位置与匹配规则符合就匹配,否则不匹配

import re  #导入re
a=re.findall("^picture","picture what i find")  #re模块  re.findall("匹配规则","匹配规则所在字符串")
print(a)
['picture']

 

^元字符写到[]字符集里就是反取

import re  #导入re
a=re.findall("[^picture]","picture what i find")  #re模块  re.findall("匹配规则","匹配规则所在字符串")
print(a)[' ', 'w', 'h', 'a', ' ', ' ', 'f', 'n', 'd']

 

2、$字符:字符串结束位置与匹配规则相匹配则匹配,$在匹配规则结尾

import re  #导入re
a=re.findall("picture$","this is the picture")  #re模块  re.findall("匹配规则","匹配规则所在字符串")
print(a)

 

3、*元字符:需要字符串里完全符合,匹配规则,就匹配,(规则里的*元字符)前面的一个字符可以是0个或多个原本字符,*在匹配规则后面

import re  #导入re
a=re.findall("picture*","this is the pictureeeeeeeeee")  #re模块  re.findall("匹配规则","匹配规则所在字符串")
print(a)
['pictureeeeeeeeee']

 4、+元字符:需要字符串里完全符合,匹配规则,就匹配,(规则里的+元字符)前面的一个字符可以是1个或多个原本字符

import re  #导入re
a=re.findall("picture+","picture this is the pictureeeeeeeeee")  #re模块  re.findall("匹配规则","匹配规则所在字符串")
print(a)
['picture', 'pictureeeeeeeeee']

5、\w匹配包括下划线在内任何字母数字字符,它相当于类[a-zA-Z0-9_] 

常用函数:

1、match函数:从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None

注意:match()函数 与 search()函数基本是一样的功能,不一样的就是match()匹配字符串开始位置的一个符合规则的字符串,search()是在字符串全局匹配第一个合规则的字符串

 

import re  #导入re
data="picture this is the pictureeeeeeeeee"
a=re.match("p\w+",data)
print(a.group())  #获取匹配到的所有结果,不管有没有分组将匹配到的全部拿出来
输出:picture

2、compile函数:search,match和findall操作时,python会将字符串转换为正则表达式对象。而使用compile完成一次转换之后,在每次使用模式的时候就不用重复转换。

import re  #导入re
data='asd23asd34455asd55'
patten=re.compile('\d+')
a=patten.search(data)
print(a.group())  #获取匹配到的所有结果,不管有没有分组将匹配到的全部拿出来
输出:23

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!