Python正则表达式仅匹配整个字符串

Ant*_*ony 4 python regex

有没有简单的方法来测试正则表达式是否与Python中的整个字符串匹配?我以为放到$最后可以做到这一点,但事实证明,$在尾随换行符的情况下这是行不通的。

例如,以下内容返回一个匹配项,即使那不是我想要的。

re.match(r'\w+$', 'foo\n')
Run Code Online (Sandbox Code Playgroud)

Pad*_*ham 5

您可以使用\Z

\Z

仅在字符串末尾匹配。

In [5]: re.match(r'\w+\Z', 'foo\n')

In [6]: re.match(r'\w+\Z', 'foo')
Out[6]: <_sre.SRE_Match object; span=(0, 3), match='foo'>
Run Code Online (Sandbox Code Playgroud)

  • @BhargavRao,我认为这可能是世界上最少刺激的文档! (2认同)

ale*_*xis 5

要测试是否匹配整个字符串,只需检查匹配的字符串是否与整个字符串一样长:

m = re.match(r".*", mystring)
start, stop = m.span()
if stop-start == len(mystring):
    print("The entire string matched")
Run Code Online (Sandbox Code Playgroud)

注意:这与如何匹配尾随换行符的问题(您没有问过)无关。