带有结束锚点($)的正则表达式在匹配时完全忽略尾部换行符的存在。在
例如
import re
regex = re.compile(r'^$')
text = "\n"
print regex.match(text)
上面的代码段将与包含“\n”的文本匹配。由于上面的正则表达式在开始和结束锚定之间没有任何内容,所以我假设它应该只匹配空字符串。在
有什么办法可以改变这种行为吗?在
p.S。
上面的代码是一个简化的正则表达式来说明这个问题。我使用的实际正则表达式是:
^{pr2}$
它还匹配包含尾随换行符的文本。在
Tags:
使用
\Z
匹配缓冲区的结尾,\A
匹配缓冲区的开始。在更新:为什么
^$
没有做你想要的,是因为匹配$
的规则是:$
正好在最后一个换行符之前匹配$
匹配缓冲区的结尾如果regex是用
re.MULTLINE
编译的,那么$
也将在任何内部换行之前匹配。在下面是一些代码来说明这一点:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐