-3

スキャンメソッドと一致メソッドで1つの正規表現の動作が異なるのはなぜですか?

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 に答える