如何匹配ruby中的多行

时间:2015-01-12 10:25:02

标签: ruby regex pattern-matching preg-match

这与多个" m"

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

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

通常在perl中

$a =~ m/(m)/sig

如何在ruby中做同样的事情

1 个答案:

答案 0 :(得分:3)

使用string.scan代替string.match match函数只返回第一个匹配。

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

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