1

私は本を​​読んでいて、この例を示しています

x = "This is a test".match(/(\w+) (\w+)/)

括弧を見て、個別に渡されたものにアクセスできるようにしています。

上記の式を IRB に入れると、次のようになります。

MatchData "これは" 1:"これ" 2:"です">

aこれにandも含まれないのはなぜTestですか?

を含める必要があります.match(/(\w+) (\w+) (\w+) (\w+)/)か?

4

1 に答える 1

3

「一致」メソッドは正規表現とグローバルに一致していません。最初の一致のみを返します。「一致」ではなく「スキャン」メソッドを使用でき、正規表現のすべての一致の配列を返す必要があります。

[~]$ irb
1.8.7-p371 :001 > x = "This is a test".match(/(\w+) (\w+)/)
 => #<MatchData "This is" 1:"This" 2:"is">
1.8.7-p371 :002 > x = "This is a test".scan(/(\w+) (\w+)/)
 => [["This", "is"], ["a", "test"]]
于 2013-08-13T16:41:49.613 に答える