正则表达式中的Ruby变量

时间:2014-09-10 03:32:27

标签: ruby-on-rails ruby regex variables grep

我正在运行grep方法来通过模式匹配进行过滤。这是一个示例代码。

companies.grep /city/

但是,ruby不允许我在rails视图中输入带有块的area_code。相反,我被迫对它进行硬编码:

companies.grep /miami/

请记住,城市是一个变量。例如,

city = miami

然而,它更新。你知道我可以将变量传递给grep方法吗?

另外,我尝试过companies.grep /#{city} /,但它没有工作

1 个答案:

答案 0 :(得分:19)

companies.grep /#{city}/
# or
companies.grep Regexp.new(city)

如果是简单的字母数字查询,这应该足够了;但是,如果你不打算使用正则表达式运算符,那么最好去实现它们。因此,更好的版本:

companies.grep /#{Regexp.escape city}/
# or
companies.grep Regexp.new(Regexp.escape city)