我正在尝试检查来自用户的输入是否与RegEx [a-zA-z]
匹配,因此我检查了文档以获取正确的方法。我在Ruby-doc.org中找到了match?
,并将文档中显示的示例复制到了irb,但我没有将true
代替:
2.3.3 :001 > "Ruby".match?(/R.../)
NoMethodError: undefined method `match?' for "Ruby":String
Did you mean? match
from (irb):1
from /usr/local/rvm/rubies/ruby-2.3.3/bin/irb:11:in `<main>'
为什么这种方法在我的irb中不起作用?
答案 0 :(得分:13)
String#match?
和Regexp#match?
是 Ruby 2.4 新方法。查看here和here。
这种新语法不仅仅是别名。它比其他方法更快,主要是因为它不更新$~
全局对象。根据{{3}}基准测试,它比其他方法的运行速度快
例如,您可以使用this,如果找不到则返回 nil ,或者匹配开始的位置。可以这样使用:
if "Ruby" =~ /R.../
puts "found"
end