-3

为什么一个正则表达式对扫描和匹配方法的行为不同?

str = "A man, a plan, a canal -- Panama"

/\w+/.match(str).to_s #=> #<MatchData "A"> i.e. just "A"

str.scan(/\w+/)       #=> ["A", "man", "a", "plan", "a", "canal", "Panama"]

这些方法应该带来相同的结果,不是吗?

4

1 回答 1

4

match只会返回第一个匹配项,因为它就是这样做的,而scan将返回所有匹配项。使用的正则表达式实际上工作完全相同。看到这个。

于 2012-10-03T21:58:49.917 回答