如何在Python中替换特殊的正则表达式字符?

时间:2016-07-17 15:11:34

标签: python regex escaping

我需要匹配以下模式:

text1.cps.text2
text1.text2.cps.text3
cps.text1

其中text1,text2是一些随机单词。 cps是几个可能的单词之一。所以我写了以下正则表达式:

pattern = "(\w+\.)*?({0})(\w+\.)*"

而不是迭代可能的单词列表:

for word in ['cps.','cps.tbl.']:
   p = pattern.format(word)

所以问题是来自可能的单词的项目可以包含特殊的正则表达式字符。所以我正在寻找将每个特殊字符替换成类似的字符的函数:

cps\. and cps\.tbl\.

1 个答案:

答案 0 :(得分:1)

re模块定义了一个escape函数。类似的东西:

for word in words:
    pattern = re.escape(word)
    ...