如何匹配 ruby 中的多行

How to match multiple lines in ruby

这不匹配多个 "m"

a = "Im the prowerful man"
puts a.match(/(m)/im)[1]

以上代码只匹配第一个"m"

在 perl 中我通常这样做

$a =~ m/(m)/sig

如何在 ruby

中做类似的事情

使用 string.scan 而不是 string.match,其中 match 函数将 return 只有第一个匹配项。

> a = "Im the prowerful man"
> a.scan(/m/im)
=> ["m", "m"]
> a.scan(/(m)/im)
=> [["m"], ["m"]]

输出中的多维数组是因为正则表达式中存在捕获组。