Ruby 为什么我的字符串与数组中的某个字符匹配,而该字符串不包含这些字符中的任何一个?

Ruby 为什么我的字符串与数组中的某个字符匹配,而该字符串不包含这些字符中的任何一个?,ruby,regex,string,match,Ruby,Regex,String,Match,使用Rails 5和Ruby 2.4。我不明白为什么下面的匹配。我有一个字符串数组,我想看看我的字符串是否与数组中的任何字符串匹配,所以我尝试了这个 2.4.0 :021 > SEPARATOR_TOKENS = ["-"] => ["-"] 2.4.0 :022 > data = "W40" => "W40" 2.4.0 :023 > data =~ /[#{Regexp.union(SEPARATOR_TOKENS)}]/ => 0 尽管我的字符串

使用Rails 5和Ruby 2.4。我不明白为什么下面的匹配。我有一个字符串数组,我想看看我的字符串是否与数组中的任何字符串匹配,所以我尝试了这个

2.4.0 :021 > SEPARATOR_TOKENS = ["-"]
 => ["-"]
2.4.0 :022 > data = "W40"
 => "W40"
2.4.0 :023 > data =~ /[#{Regexp.union(SEPARATOR_TOKENS)}]/
 => 0
尽管我的字符串中没有-,但它正在报告匹配。我如何纠正这个问题?注意,我已经使用.include从根本上解释了这个示例?不是一个选项,因为我所做的最终将包括正则表达式。

Regexp.union已经生成正则表达式,您不需要使用//

试试这个:

data =~ Regexp.union(SEPARATOR_TOKENS)

K、 我的例子太简单了,你的答案是对的,但它没有抓住我想知道的重点。请继续关注我要问的一个新的重新格式化的问题,如果你想获得一些更便宜的分数。