我不确定为什么这个不起作用。也许我在Python正则表达式中漏掉了什么。
这是我的正则表达式和我想要匹配的示例字符串:
PHONE_REGEX = "<(.*)>phone</\1>"
EXAMPLE = "<bar>phone</bar>"
我在单独测试这个匹配时失败了。使用在线正则表达式测试器时已经匹配成功。是不是我忽略了Python正则表达式的特殊性?
谢谢!
我不确定为什么这个不起作用。也许我在Python正则表达式中漏掉了什么。
这是我的正则表达式和我想要匹配的示例字符串:
PHONE_REGEX = "<(.*)>phone</\1>"
EXAMPLE = "<bar>phone</bar>"
我在单独测试这个匹配时失败了。使用在线正则表达式测试器时已经匹配成功。是不是我忽略了Python正则表达式的特殊性?
谢谢!
由于其中包含\
,您需要将字符串标记为原始字符串,方法是在正则表达式前面加上r
:
m = re.match(r"<(.*)>phone</\1>", "<bar>phone</bar>")
"<(.*)>phone</\\1>"
。只是在正则表达式中,\具有特殊含义,如果您希望字面上使用\,则需要对其进行转义。 - Simeon Visser