たとえば、次の式を考えてみましょう。
no_space = "This is a test".match(/(\w+)(\w+)/)
with_space = "This is a test".match(/(\w+) (\w+)/)
式no_space
は matchdata オブジェクト#<MatchData "This" 1:"Thi" 2:"s">
になりましたが、 with_space
is です#<MatchData "This is" 1:"This" 2:"is">
。ここで何が起こっているのですか?トークン間のリテラルスペースは、可能であれば複数の単語に一致する必要があることをルビーに示しているように思えますが、スペースがない場合、一致は1つの単語に制限されます。この件に関する説明や説明をいただければ幸いです。
ありがとう。