当字符串不包含任何字符时,为什么我的字符串匹配数组中的某些内容?

时间:2017-03-26 01:39:44

标签: 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

即使我的字符串中没有“ - ”,它也会报告匹配项。我该纠正这个吗?注意,我已经从根本上修改了这个例子,所以使用“.include?”不是一个选项,因为我正在做的事情最终将包括正则表达式。

1 个答案:

答案 0 :(得分:1)

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

试试这个:

data =~ Regexp.union(SEPARATOR_TOKENS)