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