去正则表达式捕获具有特殊字符的第一个匹配项

时间:2014-12-15 18:17:25

标签: regex go

如果给出(TEXT)testest (GOPHER)mytest (TAG)(not_this)

我只想在括号内首次出现字符。

正则表达式结果必须为TEXTGOPHERTAG,但不是not_this,因为这不是该单词短语中的第一次出现。而grepped文本应该只是字母而不是数字。

regexp.MustCompile(`(?i)\([a-z0-9_-])+\]`)
// is not working

如何编写正则表达式来grep这个?提前谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找的regex是:

(?:^|\W)\(([\w-]+)\)

<强>含义:

(?:^|\W) /* find but discard the sequence-start or a non-word character */

\(CONTENTS\) /* Contained in () */

(CONTENTS) /* Selection Group */

[\w-]+ /* word character or -, once or more */