正则表达式与Python中的特殊字符不匹配

时间:2016-12-02 02:25:02

标签: python regex string pattern-matching

我不明白为什么以下代码段返回false。我知道必须转义特殊字符,但 re.escape()已经这样做了。

import re

string = re.escape('$') 
pattern = re.compile(string)
print(bool(pattern.match(string)))

1 个答案:

答案 0 :(得分:1)

你正在逃避错误的人。要搜索的字符串不需要修改。但是你在模式中包含的字符串确实可以匹配。

import re

string = '$'
pattern = re.compile(re.escape(string))
print(bool(pattern.match(string)))

此处,模式\$(匹配文字$)与字符串"$"匹配,并且成功。

在您的示例中,模式\$(匹配文字$)与字符串"\$"(Python中的r"\$""\\$")匹配,并且失败,因为match要求模式覆盖整个字符串,反斜杠是不匹配的。