为啥 match 返回 None 而 findall 不返回?
Posted
技术标签:
【中文标题】为啥 match 返回 None 而 findall 不返回?【英文标题】:Why does match returns None while findall doesn't?为什么 match 返回 None 而 findall 不返回? 【发布时间】:2013-05-30 14:33:05 【问题描述】:我有这个字符串:
s = "mage('Images/mpins/pin5_Jul1.png', new"
这是我的模式:
patt_img = r'\w+.png'
为什么
re.findall(patt_img,s)
返回
['pin5_Jul1.png']
但是match
返回None
?
m = re.match(patt_img,s)
>>> type(m)
<type 'NoneType'>`
【问题讨论】:
【参考方案1】:因为match
只匹配从字符串的开头开始。
如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回对应的
MatchObject
实例。如果您想在字符串中找到匹配的任意位置,请改用
search()
。
【讨论】:
嗯,是的。我一直忘记这件事。谢谢。以上是关于为啥 match 返回 None 而 findall 不返回?的主要内容,如果未能解决你的问题,请参考以下文章
python--正则match_compile_search_findall用法
Python全栈--6.1-match-search-findall-group(s)的区别以及计算器实例
为啥使用正则表达式 finditer() 而不是 findall()