NoMethodError: undefined method `match?' for "Ruby":String

NoMethodError: undefined method `match?' for "Ruby":String

我正在尝试检查用户的输入是否与 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 中不起作用?

String#match? and Regexp#match? are Ruby 2.4 new methods. Check here and here.

这个新语法不仅仅是一个别名。它比其他方法快主要是因为它不更新 $~ 全局对象。根据 this 基准测试,它的运行速度比其他方法快 三倍

顺便说一句,为了实现您的目标(检查字符串是否与正则表达式匹配),您可以 [1] 更新您的 ruby 版本以使用这个新的功能或 [2] 使用另一种方法。

比如可以使用=~ operator,如果没有找到returns nil,或者position 比赛开始的地方。可以这样使用:

if "Ruby" =~ /R.../
   puts "found"
end