我想使用Python 3.6.4正则表达式来匹配'something 123456'
中的整个数字。 \d+
正确匹配整数;但是,\d*
与任何数字都不匹配,更不用说整数了。考虑到两个重复限定符的含义(0或更多实例为*,1或更多为+),这是出乎意料的。我确定已经在某处解释过了,但我找不到搜索的答案。有人可以解释或提供已经解释的帖子的链接吗?感谢。
答案 0 :(得分:2)
*
量词在零和无限次之间匹配。这意味着第11场比赛是123456
来自字符串' 123456'其他十个你可以猜到的是其余的,因为它们包含你的搜索零次。
答案 1 :(得分:1)
对于那些不使用工具的人,re.search
。
*
仅返回模式的第一个匹配项。问题中的示例有12个匹配,因为re.findall
也返回0模式的实例。
您可以使用 re.findall("\d*", 'something 123456')
# ['', '', '', '', '', '', '', '', '', '', '123456', '']
:
{{1}}