首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在go中使用lookbehind?

如何在go中使用lookbehind?
EN

Stack Overflow用户
提问于 2015-07-22 21:29:16
回答 1查看 1.6K关注 0票数 1

我正试着把这个红宝石王国变成过去。

代码语言:javascript
复制
GROUP_CALL = /^(?<i1>[ \t]*)group\(?[ \t]*(?<grps>#{SYMBOLS})[ \t]*\)?[ \t]+do[ \t]*?\n(?<blk>.*?)\n^\k<i1>end[ \t]*$/m

我把它改装成

代码语言:javascript
复制
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")

但是当运行时,我会得到这个错误

代码语言:javascript
复制
error parsing regexp: invalid escape sequence: \k

\k中没有提到去看医生,go中也没有对应的内容吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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/)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31574320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档