我试图理解为什么以下返回错误:(**我应该把“输出0”**)
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