16,re模块的常用方法

ret =re.findall('\d+', 'eva123egon4yuan567')
print(ret)#返回满足条件的结果 ,放在一个列表里。

ret2 = re.search('\d+','evaegonyu1an')
print(ret2.group())# 函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以
# 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

ret4 = re.match('\d+','321eva123egon4yuan567')
print(ret4)
print(ret4.group())#不会直接返回结果,而是直接在正则表达式的开头加了一个^,判断是否已数字开头,知道找到字母为止。

ret = re.split('\d+','alex27egon18yuan40')
print(ret)#判断以数字分割,返回一个列表

obj = re.compile('\d{3}')#将正则表达式编译成一个 正则表达式对象,规则要匹配的是3个数字。
print(obj)
ret = obj.search('abc123eeee')
print(ret.group()) #结果123
ret = obj.findall('abc123eeee456as12')#以列表的形式把匹配到的内容,返回到一个列表中,个数不够的则不匹配
print(ret)
ret = re.finditer('\d','ds3sy4784a')
print(ret)#<callable_iterator object at 0x000000751B208198>#回一个存放匹配结果的迭代器
# print(next(ret).group())#可以通过next()取值
# print(next(ret).group())
print([i.group() for i in ret])#也可以通过for循环取值,#查看剩余的结果。

ret = re.split('\d+','zhang123ya23jie')
print(ret)#以数字分割,把结果以列表形式输出。

ret = re.search('<(\w+)>(\w+)<(/\w+)>','<h1>hello</h2>')
print(ret.group(1))#第一个group组
print(ret.group(2))#第二个group组
print(ret.group(3))#第三个group组

给group组重命名

ret = re.search('<(?P<tag>\w+)>(?P<bbc>\w+)</(?P=tag)>','<h1>hello</h1>')
print(ret.group('tag'))
print(ret.group('bbc'))
print(ret.group('tag'))


猜你喜欢

转载自www.cnblogs.com/ZJGG/p/9069591.html