正则表达式使用\1、\2、\3…报错原因及解决办法,raise source.error(“invalid group reference %d” % group, len(escape) - 1)
sre_constants.error: invalid group reference 1 at position 10
正则表达式使用\1、\2、\3…报错原因及解决办法
错误示范
正确示范
原因
使用\1、\2、\3等匹配相同的表达式的时候,需要在相应的表达式加上小括号,否则找不到正则分组,会报错
另外还有通过变量匹配的方式匹配,如下代码
设置变量:?P<变量名>
使用变量:?P=变量名
案例:
html_str = '<h1>hahahaha</h2>'
# ret = re.match(r"<(\w+)>.*</\1>", html_str)
# 通过变量的方式匹配相应的数据
ret = re.match(r"<(?P<p1>\w*)>.*</(?P=p1)>", html_str)
if ret:
print("It's a right >>> %s" % ret.group())
else:
print("It's error")