10

以下がfalseを返す理由を理解しようとしています:(**「outputs0」を入力する必要があります**)

puts "a\nb" =~ Regexp.new(Regexp.escape("a\nb"), Regexp::MULTILINE | Regexp::EXTENDED)

おそらく誰かが説明することができます。

文字列と一致する複数行の文字列から正規表現を生成しようとしています。

前もって感謝します

4

2 に答える 2

13

puts常に戻りnilます。

長いですが、コードは正常に機能するはずです。=~0である一致の位置を返します。

次のものも使用できます。

"a\nb" =~ /a\sb/m

また

"a\nb" =~ /a\nb/m

注:mこの例ではこのオプションは必要ありませんが、。なしでどのように使用されるかを示していますRegexp.new

于 2012-09-05T12:47:48.913 に答える
1

おそらく、putsこれを引き起こした

1.9.3-194 (main):0 > puts ("a\nb" =~ Regexp.new(Regexp.escape("a\nb"), Regexp::MULTILINE | Regexp::EXTENDED) )
0
=> nil


1.9.3-194 (main):0 > "a\nb" =~ Regexp.new(Regexp.escape("a\nb"), Regexp::MULTILINE | Regexp::EXTENDED)
=> 0
于 2012-09-05T12:39:57.820 に答える