^abc$ 匹配字符串 abc,但也匹配 abc\n(带有尾随换行符)。
如何让它只匹配没有换行符的字符串?
(考虑到 Python,但应该是一般的正则表达式问题。)
请您参考如下方法:
使用 \Z 代替 $,它只匹配字符串的末尾。
>>> re.match(r'^abc\Z', 'abc')
<_sre.SRE_Match object at 0x02469560>
>>> re.match(r'^abc\Z', 'abc\n')
>>>
注意:这个答案具体取决于 \Z 在 Python 中的含义。这个概念是often spelled \z 在其他正则表达式实现中。您还可以使用否定先行断言,但其语法也因正则表达式实现而异。参见 dawg's answer例如在 Python 中使用否定先行断言。
