当前位置:  开发笔记 > 后端 > 正文

NoMethodError:未定义的方法`匹配?' 对于"Ruby":String

如何解决《NoMethodError:未定义的方法`匹配?'对于"Ruby":String》经验,为你挑选了1个好方法。

我正在尝试检查来自用户的输入是否与RegEx匹配,[a-zA-z]因此我检查了文档以获取正确的方法.我match?在Ruby-doc.org中找到并将docs中显示的示例复制到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 `
'

为什么这种方法在我的irb中不起作用?



1> mrlew..:

String#match?并且Regexp#match?Ruby 2.4的新方法.点击这里和这里.

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

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

例如,您可以使用=〜运算符,如果未找到则返回nil,或者匹配开始的位置.可以这样使用:

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

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有