未定义的方法“匹配?”为true:TrueClass(NoMethodError)

时间:2019-10-11 08:46:04

标签: regex ruby algorithm

我试图返回(100..1000)范围内符合以下条件的值的列表/数组:

  1. 3位数字
  2. 每个值中的所有数字都是唯一的。
$global_range = Array (100..999)
$fun = []

def listOfFunPossibilities
    # FUN values should meet the criteria below:
    # 1. 3 digit value
    # 2. All are unique

    $global_range.each do |i|
       if (!(/([0-9]).*?\1/)).match?(i)
           $fun.push(i)
       end
    end
    return $fun
end

listOfFunPossibilities()

1 个答案:

答案 0 :(得分:2)

您过早应用否定!

if (!(/([0-9]).*?\1/)).match?(i)

因此您首先要否定一个正则表达式(出于某些原因,这是正确的),然后尝试对match值调用true

改为使用:

if !(/([0-9]).*?\1/.match?(i))

甚至

if !/([0-9]).*?\1/.match?(i)