python正则表达式模糊匹配_python 正则表达式

  • Post author:
  • Post category:python


正则表达式的作用:用来匹配字符串

一、字符串方法

字符串提供的方法是完全匹配,不能进行模糊匹配

s = ‘hello world’

# 字符串提供的方法是完全匹配,不能进行模糊匹配

print(s.find(‘ll’)) # 2 查找ll的位置,输出的是第一个l的位置

ret = s.replace(‘ll’, ‘xx’) # 替换,用ll 替换为 xx

print(ret) # hexxo world

print(s.split(‘w’)) # [‘hello ‘, ‘orld’] 分割:以w为界限,分割为前后两部分,存在列表中

二、正则表达式

正则的方法:

1、findall() :所有结果返回到一个列表里

2、search() :返回匹配到的第一个对象,对象可以调用group()返回结果

3、match() :只在字符串开始匹配,也返回一个对象,可调用group()

findall() 方法:

1、正则表达式可以进行模糊匹配:

ret = re.findall(r’w\w{2}l’, ‘hello world’) # 匹配字符串中w开头l结尾中间有两个字符的词

# (加r,声明是原生字符串,避免字符串转义)

print(ret) # [‘worl’]

2、元字符

“.”  通配符:可以代指除换行符之外的所有字符,一个通配符只能代指任意一个字符

ret = re.findall(‘w..l’, ‘hello world’) # 匹配字符串中w开头l结尾中间有两个字符的字符串

print(ret) # [‘worl’]

“^” 上尖角号,只在字符串开始的位置匹配匹配

ret = re.findall(‘^h..o’, ‘hjklshllo’) # 只在字符串的开始位置进行匹配,匹配不上就结束,不匹配后面的内容

print(ret) # []

ret = re.findall(‘^h..o’, ‘hjkoshllo’)

print(ret) # [‘hjko’]

“$”符, 只在字符串结尾匹配

ret = re.findall(‘h..o$’, ‘hjkoshllo’)

print(ret) # [‘hllo’]

ret = re.findall(‘h..o$’, ‘hjkoshlyto’)

print(ret) # []

“*”号,重复匹配(*还可以代指0个) ,*代指的个数是0到无穷

ret = re.findall(‘h.*o’, ‘hjkoshlytg’) # *表示重复前面多个. 既只要是以h开头o结尾的都行

print(ret) # [‘hjko’]

ret = re.findall(‘h*’, ‘hhhhjlhl’) # 匹配多个h

print(ret) # [‘hhhh’, ”, ”, ‘h’, ”, ”]

<