python3 re模块

search模块


import re
text='牛牛桃21河马23'
# a=re.search('(w+?)(d+)',text) #使用()把我们想要的结果保留下来,下面用group调用。search只查找到第一个符合条件的字符串或者其他类型的数据,之后即使有满足条件的数据也不再查找
# print(a.group()) #结果牛牛桃21
# print(a.group(1)) #结果牛牛桃
# print(a.group(2)) #结果21
a=re.search('(?P<name>w+?)(?P<age>d+)',text) #这样对我们每一个想要的内容做了一个标识符,在group中调用是更加方便,结果相同
print(a.group())
print(a.group("name"))
print(a.group("age"))

对于group调用的解释

返回匹配的一个或多个子组。如果有一个参数,结果是一个单一的字符串; 如果有多个参数,则结果是每个参数有一个项目的元组。没有参数,group1默认为零(整个匹配被返回)。如果groupN参数为零,则相应的返回值是整个匹配的字符串; 如果它在包含范围[1..99]中,则它是匹配相应括号组的字符串。如果组编号为负数或大于模式中定义的组数,IndexError则会引发异常。如果一个组包含在不匹配的模式的一部分中,则相应的结果是None如果一个组包含在多次匹配的模式的一部分中,则返回最后的匹配。

>>>
>>> m = re.match(r"(w+) (w+)", "Isaac Newton, physicist")
>>> m.group(0)       # 和m.group一样,默认值为0
'Isaac Newton'
>>> m.group(1)       # 查看第一个括号内匹配的内容
'Isaac'
>>> m.group(2)       # 查看第二个括号内匹配的内容
'Newton'
>>> m.group(1, 2)    # 多个内容的匹配显示
('Isaac', 'Newton')

原文地址:https://www.cnblogs.com/liutao97/p/9244349.html