为什么这个字符串匹配模式?
pattern = """
^Page \d of \d$|
^Group \d Notes$|
^More word lists and tips at http://wwwmajortests.com/word-lists$|
"""
re.match(pattern, "stackoverflow", re.VERBOSE)
根据我的说法,它应匹配“Page 1 of 1”或“Group 1 Notes”等字符串。
答案 0 :(得分:9)
在正则表达式中,尾随|
:
# ^More word lists and tips at http://wwwmajortests.com/word-lists$|
# ^
空模式匹配任何字符串:
>>> import re
>>> re.match('abc|', 'abc')
<_sre.SRE_Match object at 0x7fc63f3ff3d8>
>>> re.match('abc|', 'bbbb')
<_sre.SRE_Match object at 0x7fc63f3ff440>
因此,删除尾随的|
。
顺便说一下,你不需要^
因为re.match
只检查字符串开头的匹配项。
而且,我建议你使用原始字符串(r'....'
)来正确地逃避反向。
附加说明
\d
仅匹配一位数字。如果您还想匹配多个数字,请使用\d+
。