繁体   English   中英

Python:re.match(r"1", "[1]") 返回空

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM