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')