我正在尝试在学习正则表达式时理解一个看似简单的案例。
假设我有这样的代码:
import re
a = "Eventin queue contains 5 elements, first element is 20 minutes old"
b = re.search(r"Eventin queue contains \d+ elements, first element is \d+ minutes old", a)
print(b)
出于某种原因,b
仅返回此结果:<_sre.SRE_Match object; span=(0, 66), match='Eventin queue contains 5 elements, first element >
正如您所看到的,这不是我期待的完整结果。但是,如果我使用re.findall()
,我会获得['Eventin queue contains 5 elements, first element is 20 minutes old']
我在这里误解了什么吗? re.search()
不应该返回完整匹配吗?
答案 0 :(得分:2)
方法re.findall
返回匹配的子字符串列表,但方法re.search
返回match
个对象,您可以像这样恢复完整匹配的子字符串。
b.group() # 'Eventin queue contains 5 elements, first element is 20 minutes old'
您所看到的内容<_sre.SRE_Match object; span=(0, 66), match='Eventin queue contains 5 elements, first element >
仅代表该对象。