golang 正则匹配报错

请问这个是什么原因如何修改?

var reg_pattern = regexp.MustCompile("^(<a>\\d)(\\d)(\\d)\\1\\2\\3$")
    if reg_pattern.MatchString(convert.IntToStr(uid)) {
            return true
        }
panic: regexp: Compile(`^(<a>\d)(\d)(\d)\1\2\3$`): error parsing regexp: invalid escape sequence: `\1`

还有这个是什么原因 如何修改?

var reg_pattern13 = regexp.MustCompile("(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){2,}|(?:0(?=9)|9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){2,})\\d")
        if reg_pattern13.MatchString(convert.IntToStr(uid)) {
            return true
        }
panic: regexp: Compile(`(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){2,}|(?:0(?=9)|9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){2,})\d`): error parsing regexp: invalid or unsupported Perl syntax: `(?=`
阅读 11.9k
2 个回答

写的\d,还是\\d?我建议你不要用"来包裹整个表达式,用`去包裹表达式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题