3

Rubular.com と VM Linux で Ruby 1.9.2 で同じ超単純な正規表現を試していますが、なぜ異なる出力が得られるのかわかりません: VM:

my_str = "Madam Anita"
puts my_str[/\w/]

この出力: マダム

Rubular で出力: MadamAnita Rubular: http://www.rubular.com/r/qyQipItdes

助けていただければ幸いです。ここで立ち往生しました。hw1 のコードをテストできません。

4

2 に答える 2

4

いいえ、そうではありません。「Madam」と「Anita」のすべての文字に一致しますが、スペースには一致しません。あなたが抱えている問題はmy_str[/\w/]、指定された正規表現に対して単一の一致のみを返すことですが、Rubular は可能なすべての一致を強調表示します。

すべてのオカレンスが必要な場合は、次のようにすることができます。

1.9.3p194 :002 > "Madam Anita".scan(/\w+/)
 => ["Madam", "", "Anita", ""] 
于 2012-10-07T00:39:19.580 に答える
3

実際には、単一の文字\wに一致します。Rubular の結果には、これを伝えるために隣接する文字の間にスペースが含まれています (強調表示をより明確にすることもできればいいのですが...)。2 つの文字列 (と) に一致する matching の出力と比較してください。\w+MadamAnita

于 2012-10-07T00:40:06.250 に答える