正则表达式的作用:用来匹配字符串
一、字符串方法
字符串提供的方法是完全匹配,不能进行模糊匹配
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’, ”, ”]
<