使用正则表达式捕获第一个出现的特殊字符。

huangapple go评论88阅读模式
英文:

Go regex to capture the first occurence with special character

问题

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

我想要匹配括号内的字符的第一个出现。

正则表达式的结果应该是 TEXTGOPHERTAG,但不包括 not_this,因为它不是该词组中的第一个出现。而且匹配到的文本应该只包含字母,不包含数字。

regexp.MustCompile(`(?i)\([a-z]+\)`)
// 不起作用

请问我应该如何编写正则表达式来匹配这个要求?谢谢!

英文:

If given (TEXT)testest (GOPHER)mytest (TAG)(not_this),

I want to grep only the first occurrence of characters inside parentheses.

The regex results need to be TEXT, GOPHER, TAG, but NOT not_this because this is not the first occurrence in that word phrase. And the grepped text should be only letters not numbers.

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

How do I write the regular expression to grep this? Thank you in advance!

答案1

得分: 2

我认为你要找的正则表达式是:

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

含义:

(?:^|\W) /* 查找但丢弃序列开头或非单词字符 */

\(CONTENTS\) /* 包含在括号中的内容 */

(CONTENTS) /* 选择组 */

[\w-]+ /* 单词字符或-,一次或多次 */
英文:

I think the regex you are looking for is:

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

Meaning:

(?:^|\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 */

huangapple
  • 本文由 发表于 2014年12月16日 02:17:25
  • 转载请务必保留本文链接:https://go.coder-hub.com/27490455.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定