首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >re.match与re.findall

re.match与re.findall
EN

Stack Overflow用户
提问于 2014-06-04 23:36:05
回答 2查看 10.9K关注 0票数 11

为什么re.match返回None对象,而类似的re.findall返回非空结果?

我正在解析电子邮件主题。有问题的是

代码语言:javascript
复制
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']中返回匹配的字符串

我的思想是怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-04 23:37:40

re.match匹配从字符串开头开始的模式。但是,re.findall在字符串中的任何位置搜索该模式的匹配项。

如果您有模式"mail failure"和字符串:

代码语言:javascript
复制
subject = "=?UTF-8?B?0JLQsNGI0LUg0YHQvtC+0LHRidC10L3QuNC1INC90LUg0LTQvtGB0YLQsNCy0LvQtdC90L4=?=. Mail failure."

re.match将返回None,因为字符串不是以"mail failure"开头的。但是,因为字符串包含"mail failure",所以re.findall将返回匹配。

票数 19
EN

Stack Overflow用户

发布于 2014-06-04 23:39:48

它就在文档中:https://docs.python.org/2/library/re.html,你想要的是re.search

请注意,即使在多行模式下,re.match()也只会匹配字符串的开头,而不是每行的开头。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24041720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档