[英]Python: re.match (r"1", "[1]") returns empty
为什么 Python 的正则表达式模块无法识别以下代码中的“[1]”?
In [43]: re.match (r"1", "[1]")
In [44]:
而这有效:
In [46]: re.match (r"1", "123")
Out[46]: <re.Match object; span=(0, 1), match='1'>
来自docs.python.org :
re.match(pattern, string, flags=0)
如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。 如果字符串与模式不匹配,则返回 None; 请注意,这与零长度匹配不同。
...
如果要在 string 中的任何位置找到匹配项,请改用
search()
(另请参阅search()
与match()
)。
由于您的“字符串”以[
开头,因此不会被捕获。
正如文档所建议的那样,使用re.search(r"1", "[1]")
确实匹配它,因为它将匹配字符串中的任何位置
而这有效:
In [46]: re.match (r"1", "123")` Out[46]: <re.Match object; span=(0, 1), match='1'>
这里的“字符串”以模式开头并按预期匹配
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.