在其他语言中,可以在RegExp中使用/.../g
进行全局匹配。
但是,在Ruby中:
"hello hello".match /(hello)/
只捕获一个问候。
如何捕获所有
hello
? 最佳答案
您可以使用扫描方法。 scan方法将为您提供所有匹配项的数组,或者,如果将其传递给块,则将每个匹配项传递给该块。
"hello1 hello2".scan(/(hello\d+)/) # => [["hello1"], ["hello2"]]
"hello1 hello2".scan(/(hello\d+)/).each do|m|
puts m
end
我已经写过有关此方法的文章,您可以在文章结尾附近阅读有关here的内容。