Ruby 将“=~”应用于字符串

Ruby 将“=~”应用于字符串,ruby,regex,Ruby,Regex,我有: 我正在做: nameArray = ["Ashlee", "Sarah", "Aspen"] symbolRegex = "=~".to_sym 我得到这个错误: nameArray.each do |name| name.send(symbolRegex, "/Aspen/") end 我想知道如何解决这个问题。传递一个正则表达式作为=~的参数。它的任何一边都必须是正则表达式;两者不能都是字符串: type mismatch: String given (repl):5:in

我有:

我正在做:

nameArray = ["Ashlee", "Sarah", "Aspen"]
symbolRegex = "=~".to_sym
我得到这个错误:

nameArray.each do |name|
  name.send(symbolRegex, "/Aspen/")
end

我想知道如何解决这个问题。

传递一个正则表达式作为
=~
的参数。它的任何一边都必须是正则表达式;两者不能都是字符串:

type mismatch: String given
(repl):5:in `=~'

这需要一个新的解决方案。您的代码有
“/Aspen/”
,其中包含斜杠,因此它看起来像一个Regexp,但实际上是一个字符串。您应该编写
/Aspen/

无需将
“=~”
转换为符号。只需编写
symbolRegex=:=~
。Ruby的惯例是对变量和方法的名称使用snake大小写(
symbol\u regex
,而不是camel大小写
symbolRegex
)。
name.send(symbolRegex, /Aspen/)