![](/img/trans.png)
[英]How to do a negative lookbehind within a %r<…>-delimited regexp in Ruby?
[英]How to use lookbehind regexp in go?
我正在嘗試將紅寶石正則表達式轉換為go。
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
不支持lookbehinds,也沒有提及諸如@stribizhev之類的反向引用。
正則表達式2(RE2)語法參考:
https://github.com/google/re2/wiki/Syntax
接受的正則表達式的語法與Perl,Python和其他語言使用的常規語法相同。 更准確地說,它是RE2接受的語法,並在//code.google.com/p/re2/wiki/Syntax中進行了描述,但\\ C除外。 -GoLang文檔
( 參考: https : //golang.org/pkg/regexp/ )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.