此问题已在此处有答案:
What special characters must be escaped in regular expressions?(13个回答)
3天前关闭锁定6天此时有disputes about this question’s content正在解决。它目前不接受新的答案或交互。
我尝试匹配“Python 3.11.4(64-bit)Setup”如下:
re.match(r"Python (\d.)+\d (64-bit) Setup", "Python 3.11.4 (64-bit) Setup")
然而,由于某种原因,它不起作用。但是,当我尝试
re.match(r"(\d.)+\d", "3.11.4")
完全吻合。我该怎么解决?
我的最终目标实际上是将它与这个模式相匹配:
^Python (\d.)+\d( \(\d+-bit\))? Setup$
2条答案
按热度按时间pgccezyw1#
两个错误:
(\d.)
不匹配,例如11.
工作版本:
ujv3wf0j2#
”““但是,出于某种原因,它不起作用。但当我尝试"*
re.match(r"(\d.)+\d", "3.11.4")
*”““它非常匹配。我该怎么解决?..."*
它没有匹配整个字符串,只是找到了一个匹配项。
输出量
\d
语法将匹配单个数字,* 0 * 到 * 9 *。要匹配数字序列,请附加 + 量词-
\d+
。此外,对点字符进行转义也是一个很好的做法,它将匹配任何字符。
输出量
因此,您必须重构您的模式,以考虑这个文本,因为您使用
^
和$
语法,以匹配行的开始和结束。这里有一个例子。
输出量