为什么我不能用python中的变量创建这个正则表达式?

时间:2013-10-12 01:36:04

标签: python

我正在尝试创建一个正则表达式来替换目标字符串中word中存储的字符串的所有字实例:

regex = re.compile("\\b" + word + "\\b")

Python抱怨“引发错误,v#无效表达”。为什么会出错?我确保逃脱反斜杠,对吧?

1 个答案:

答案 0 :(得分:4)

由于re.compile不知道其输入部分来自用户,因此您应使用re.escapeword中使特殊字符(如括号)与这些字符匹配,而不是在正则表达式中使用它们的特殊含义,如下所示: ```

import re
word = 'Par(ens'
regex = re.compile("\\b" + re.escape(word) + "\\b")