RegEx匹配单词与括号?

时间:2014-05-05 16:41:22

标签: ruby regex

我的正则表达式有问题。我有这样的字符串:

test(r), testtest(r,r), example, example2, exmp (r,5)

我想在文本和括号之间找到所有没有空格的单词。从上面的字符串中,我想得到:

test(r), testtest(r,r)

我创建了这个正则表达式,但它只捕获了包含内容的括号:

/\(([^\)]+)\)/g

感谢所有答案。

编辑: 我在Ruby工作,这个正则表达式完美地工作/\w+\(([^)]+)\)/g

如果我想在括号和逗号之间用逗号分隔单词,我该怎么办?例如,我如何得到这个?

testtest(r,r) <-with comma
test(r) <-without comma

3 个答案:

答案 0 :(得分:4)

您可以在模式前添加\w+

/\w+\(([^)]+)\)/g

这将匹配一个或多个“字”字符(包括字母,数字和下划线),后跟(,后跟)以外的任何字符中的一个或多个,后跟)

如果您想知道想要能够分别捕获括号前面出现的单词,可以将它放在这样的组中:

/(\w+)\(([^)]+)\)/g

在您的示例中,这将为第1组提供第1组:test和第2组:r,第1组为testtest和第2组:r,r第二场比赛。

答案 1 :(得分:1)

最近我自己也有同样的问题。这样做解决了我的问题:

(\w+\([\w, ]+\))

希望它有所帮助!

答案 2 :(得分:0)

这样的事情:

/\w+\(\w([,]\w)?\)/g