如何获取组的正则表达式匹配列表?

时间:2012-06-14 06:03:37

标签: regex

我有一个可以在输入字符串中出现任意次数的组。我需要获得所有匹配项的列表。

例如,输入:

example repeattext 1 anything here repeattext 2 anything repeattext 3

我的正则表达式是:

 (repeattext \d)

我想获得该组的匹配列表。可以在这里使用正则表达式,还是我需要自己解析它?

2 个答案:

答案 0 :(得分:1)

是的,你可以在这里使用正则表达式。你现有的正则表达式会很好。

请参阅http://rubular.com/r/fS8c9C61rG,了解您的示例中使用的内容。

如果数字将变为10或更高,请考虑此正则表达式:

(repeattext \d+)
              ^
              |
              `- matches 1 or more repeating of previous

答案 1 :(得分:1)

使用

result = subject.scan(/repeattext \d+/)
=> ["repeattext 1", "repeattext 2", "repeattext 3"]

请参阅the docs for the .scan() method