python 正则表达式常用方法
2021-07-18 本文已影响0人
Amy_yqh
1、match(reg,str)
(1)从头开始匹配
(2)要么第一个就符合要求、要么不符合
(3)匹配成功返回match对象,否则返回None
(4)group()获取返回的数据,span()匹配的下标区间
str = 'abcdefg123bcpoiu'
reg = 'bc'
res = re.match(reg,str)
print(res)
print(res.group())# 返回匹配的字符串
print(res.span()) # 返回结果的下标区间
2、search(reg,str)
(1)从头开始一直到字符串结尾进行匹配,返回第一个符合条件的结果(与match的区别)
(2)匹配成功返回match对象,否则返回None
(3)group()获取返回的数据,span()匹配的下标区间
str = 'abcdefg123bcpoiu'
reg = 'bc'
res = re.search(reg,str)
print(res)
print(res.group())
print(res.span())
3、findAll(reg,str)
(1)返回所有符合规则的字符串,结果为一个数组
str = 'abcdefg123bcpoiu'
reg = 'bc'
res = re.findall(reg,str)
print(res)
print(res.group())
print(res.span())
4、findIter(reg,str)
(1)返回所有符合规则的字符串,结果为一个迭代器,
(2)使用list
str = 'abcdefg123bcpoiu'
reg = 'bc'
res = re.finditer(reg,str)
print(res)
print(list(res)[0].span())
5、sub(reg,rep,str)
(1)使用rep替换所有符合规范的字符串,返回替换后的字符串
str = 'abcdefg123bcpoiu'
reg = 'bc'
res = re.sub(reg,'AAA',str)
print(res)
6、compile(reg)
(1)定义为一个正则对象
使用于大数据匹配相同规则的情况,节省内存空间
arr = [
' abc 123 def',
' abc 321 def',
' abc 213 def',
]
reg = re.compile('\d{3}')
for i in arr:
res = reg.search(i).group()
print(res)