我希望将完整的字符串与特定模式进行匹配。比如说:
word = "aaaa"
test = re.match(r"^aaaa$", word) # this returns True
然而,如果该单词后面跟着一个换行符:
word = "aaaa\n"
test = re.match(r"^aaaa$", word) # Also returns True :(
但我希望找到一种方法,在这种情况下返回False。有没有办法区分“\n”?
使用 \A
代替起始锚点 ^
,使用 \Z
代替结束锚点 $
:
>>> print re.match(r'\Aaaaa\Z', 'aaaa')
<_sre.SRE_Match object at 0x1014b9bf8>
>>> print re.match(r'\Aaaaa\Z', 'aaaa\n')
None
\A
匹配字符串的实际开头,\Z
匹配实际结尾,在多行字符串中只能有一个\A
和\Z
,而$
可以在每一行中匹配。
只是提醒一下,与.NET
、Java
、PCRE
、Delphi
、PHP
不同,在Python
中,\Z
仅匹配字符串的最后。 Python不支持\z
。
^aaaa(?!\n)$
。
^aaaa(?=(?!\n)$)
可以工作。 - rock321987