【问题标题】:Why is my string matching something in an array when that string doesn't contain any of those characters?当该字符串不包含任何这些字符时,为什么我的字符串与数组中的某些内容匹配?
【发布时间】:2017-08-18 20:08:04
【问题描述】:

使用 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?”不是一个选项,因为我所做的最终将包括正则表达式。

【问题讨论】:

    标签: ruby regex string match


    【解决方案1】:

    Regexp.union 已经产生了正则表达式,你不需要使用/.../

    试试这个:

    data =~ Regexp.union(SEPARATOR_TOKENS)
    

    【讨论】:

    • K,我通过例子过于简单化了,你的回答是对的,但它错过了我想知道的重点。请继续关注一个新的重新格式化的问题,我想问你是否想获得一些更便宜的积分。
    猜你喜欢
    • 2012-03-24
    • 2011-08-09
    • 2021-06-30
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多