代码之家  ›  专栏  ›  技术社区  ›  dangerChihuahua007

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

  •  0
  • dangerChihuahua007  · 技术社区  · 12 年前

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

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

    Python抱怨“引发错误,v#无效表达式”。为什么会出现错误?我一定要转义反斜杠,对吧?

    1 回复  |  直到 12 年前
        1
  •  4
  •   phihag    12 年前

    自从 re.compile 不知道它的部分输入来自用户,您应该使用 re.escape 在中制作特殊字符(如括号) word 匹配这些字符,而不是在正则表达式中采用它们的特殊含义,如下所示: ```

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