以下がfalseを返す理由を理解しようとしています:(**「outputs0」を入力する必要があります**)
puts "a\nb" =~ Regexp.new(Regexp.escape("a\nb"), Regexp::MULTILINE | Regexp::EXTENDED)
おそらく誰かが説明することができます。
文字列と一致する複数行の文字列から正規表現を生成しようとしています。
前もって感謝します
puts
常に戻りnil
ます。
長いですが、コードは正常に機能するはずです。=~
0である一致の位置を返します。
次のものも使用できます。
"a\nb" =~ /a\sb/m
また
"a\nb" =~ /a\nb/m
注:m
この例ではこのオプションは必要ありませんが、。なしでどのように使用されるかを示していますRegexp.new
。
おそらく、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