将正则表达式字符串传递给方法

时间:2014-07-16 17:40:58

标签: ruby regex interpolation

在一个方法中,我想用正则表达式动态评估以下代码块:

if (/^[A-F][A-Z]*[^\.\*]$/).match(some_value)

我尝试的方法是:

def check(val)
  if (/^[val][A-Z]*[^\.\*]$/).match(some_value)
    puts "foo"
  else
    puts "waa"
  end
end
check("A-F")

我传入的值并未正确显示。似乎以这种方式传递价值需要更多的东西。这不是你可以用方法做的事情吗?

1 个答案:

答案 0 :(得分:3)

您期望字符串插值。为此,您需要使用插值语法#{}

def check(val)
  if (/^[#{val}][A-Z]*[^\.\*]$/).match(some_value)
    puts "foo"
  else
    puts "waa"
  end
end