RegEx,如何获得所有比赛和组? Ruby 1.9.3p125

时间:2012-06-05 00:01:01

标签: ruby regex ruby-1.9.3

假设我有以下字符串:

google-com, Awesome-net(Ooops), facebook-com / rocket-yet

我想提取以-com结尾的所有单词,但将它们分组。

目前,我尝试过:

^\w+[-]com

这样可行,但只能抓住第一场比赛。如何获得所有其他人?也许使用括号的东西,但我无法弄清楚如何...

将所有匹配的字符串放入MatchData对象(Ruby)中,我可以像Array一样工作。

我正在使用ruby 1.9.3p125

1.9.3p125 :124 > original
 => "google-com, Awesome-net(Ooops), facebook-com / rocket-yet" 
1.9.3p125 :125 > results = original.match(/(\w+-com)/)
 => #<MatchData "google-com" 1:"google-com"> 

3 个答案:

答案 0 :(得分:2)

只需使用findall选项,这将有效:

\w+-com

我在http://rubular.com/

中对其进行了测试

答案 1 :(得分:0)

编辑:发现问题,你的正则表达式在开始时有一个插入符号,表示在字符串的最开头只有一个实例匹配。删除它应该允许您匹配字符串中的所有组:

(\w+[-]com)

答案 2 :(得分:0)

似乎match不是正确的方法。

使用Ben Roux和Epic_orange建议的正则表达式更改为scan使其有效。