Python中的正则表达式反向引用问题

PFr*_*ise 1 python regex python-3.x

我不知道为什么这不起作用.也许我错过了Python正则表达式的东西.

这是我的正则表达式和我想要它匹配的示例字符串:

    PHONE_REGEX        = "<(.*)>phone</\1>"
    EXAMPLE            = "<bar>phone</bar>"
Run Code Online (Sandbox Code Playgroud)

我单独测试了这个匹配,但它失败了.我使用了一个在线正则表达式测试仪,它匹配.我只是遗漏了Python正则表达式特有的东西吗?

谢谢!

Sim*_*ser 6

你必须将字符串标记为原始字符串,因为\在那里,通过r在正则表达式前面放置:

m = re.match(r"<(.*)>phone</\1>", "<bar>phone</bar>")
Run Code Online (Sandbox Code Playgroud)

  • 如果第一个参数是变量,只需确保所有反斜杠都使用前面的另一个反斜杠进行转义.以下内容也适用:`"<(.*)> phone </ \\ 1>"`.它只是\在正则表达式中有一个特殊含义,如果你真的希望使用\,你需要逃脱它. (2认同)