在其他语言中,在RegExp中,可以使用/.../g
进行全局匹配.
然而,在Ruby中:
"hello hello".match /(hello)/
只有一个问候.
我如何捕捉所有hello
个?
在其他语言中,在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页阅读.