gpt4 book ai didi

python - 为什么这个字符串匹配正则表达式?

转载 作者:行者123 更新时间:2023-11-28 20:07:12 25 4
gpt4 key购买 nike

为什么这个字符串匹配模式?

  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”之类的字符串。

最佳答案

在您的正则表达式中,尾部有 |:

# ^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+

关于python - 为什么这个字符串匹配正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18565413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com