re模块
匹配查询 match与search方法
1.match
import re
# match方法 参数为 正则表达式,字符串,修饰符
res = re.match('([\da-zA-Z]*),(\d),(\d)', 'one1,2,3,two2,three3')
# group方法可捕获所有()里的数据,返回的是字符串类型
g = res.group()
print(g)
print(type(g))
# group捕获特定()里的数据,返回的是字符串类型
g1 = res.group(2)
print(g1)
print(type(g1))
# groups捕获所有()里的数据并返回元组
g2 = res.groups()
print(g2)
print(type(g2))
2. search
import re
# search方法 参数为 正则表达式,字符串,修饰符
res1 = re.search('([\da-zA-Z]*),(\d),(\d)', 'one1,2,3,two2,three3')
# group方法可捕获所有()里的数据,返回的是字符串类型
sg = res.group()
print(sg)
print(type(sg))
# group捕获特定()里的数据,返回的是字符串类型
sg1 = res.group(2)
print(sg1)
print(type(sg1))
# groups捕获所有()里的数据并返回元组
sg2 = res.groups()
print(sg2)
print(type(sg2))
3.match与search 区别
# 以上match和search方法结果是一样的,那么两者区别在哪
m = re.match('(\d),(\d)', 'one1,2,3,two2,three3')
s = re.search('(\d),(\d)', 'one1,2,3,two2,three3')
print(m) # 返回值为None,因为match只匹配字符串的开始,字符串开始不符合正则表达式,匹配失败,返回None
print(s) # search匹配整个字符串
# print(m.group()) # 会报错
print(s.group()) # 不会报错
4.sub方法替换匹配项
import re
str = 'In1 the2 future3 my4 dream5 will6 come7 true8'
# 删除数字 sub方法参数:正则表达式,替换字符或函数,字符串
nonum = re.sub(r'\d', '', str)
print(nonum)
print(type(nonum))
# 匹配项替换字符
cha = re.sub('e', 'XY', nonum)
print(cha) # 输出:In thXY futurXY my drXYam will comXY truXY
print(re.sub('e', 'XY', nonum, 2)) # 输出:In thXY futurXY my dream will come true
def change(char):
return char*2
# 匹配项替换成函数
print(re.sub('e', change('XY'), nonum, 2)) # 输出: In thXYXY futurXYXY my dream will come true
其余方法,to be continued!!!
|