我正试着把这个红宝石王国变成过去。
GROUP_CALL = /^(?<i1>[ \t]*)group\(?[ \t]*(?<grps>#{SYMBOLS})[ \t]*\)?[ \t]+do[ \t]*?\n(?<blk>.*?)\n^\k<i1>end[ \t]*$/m我把它改装成
groupCall := regexp.MustCompile("^(?P<i1>[ \\t]*)group\\(?[ \\t]*(?P<grps>(?::\\w+|:\"[^\"#]+\"|:'[^']+')([ \\t]*,[ \\t]*(?::\\w+|:\"[^\"#]+\"|:'[^']+'))*)[ \\t]*\\)?[ \\t]+do[ \\t]*?\\n(?P<blk>.*?)\\n^\\k<i1>end[ \\t]*$/s")但是当运行时,我会得到这个错误
error parsing regexp: invalid escape sequence: \k在\k中没有提到去看医生,go中也没有对应的内容吗?
发布于 2015-07-23 02:34:41
不支持后置查找,@stribizhev这样的反向引用也不支持。
正则表达式2 (RE2)语法引用:
https://github.com/google/re2/wiki/Syntax
所接受的正则表达式的语法与Perl、Python和其他语言使用的一般语法相同。更确切地说,这是RE2接受的语法,并在//code.google.com/p/re2/wiki/语法中进行了描述,但\C. -GoLang Docs除外。 (参考文献: https://golang.org/pkg/regexp/)
https://stackoverflow.com/questions/31574320
复制相似问题