为什么re.match
返回None
对象,而类似的re.findall
返回非空结果呢?
我正在解析电子邮件主题。有问题的是
subject = "=?UTF-8?B?0JLQsNGI0LUg0YHQvtC+0LHRidC10L3QuNC1INC90LUg0LTQvtGB0YLQsNCy0LvQtdC90L4=?=. Mail failure."
我想知道为什么
re.match("mail failure", subject, re.I)
返回对应对象的None对象re.findall("mail failure", subject, re.I)
返回列表['Mail failure']
中的匹配字符串我的想法有什么问题?
最佳答案
re.match
从字符串的开头匹配模式。 re.findall
但是在字符串中的任何位置搜索模式的出现。
如果您具有"mail failure"
模式和字符串:
subject = "=?UTF-8?B?0JLQsNGI0LUg0YHQvtC+0LHRidC10L3QuNC1INC90LUg0LTQvtGB0YLQsNCy0LvQtdC90L4=?=. Mail failure."
re.match
将返回None
,因为字符串不是以"mail failure"
开头。但是re.findall
将返回匹配项,因为字符串包含"mail failure"
。关于python - 重赛与重赛,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24041720/