gpt4 book ai didi

ruby - NoMethodError: `match?' 的未定义方法 "Ruby":String

转载 作者:数据小太阳 更新时间:2023-10-29 06:56:31 24 4
gpt4 key购买 nike

我正在尝试检查用户的输入是否与 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?Regexp#match?Ruby 2.4 的新方法。检查herehere .

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

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

例如,您可以使用 =~ operator ,如果未找到,则返回 nil,或者匹配开始的 position。可以这样使用:

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

关于ruby - NoMethodError: `match?' 的未定义方法 "Ruby":String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41792348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com