正则表达式中的Ruby变量

use*_*296 7 ruby regex variables grep ruby-on-rails

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

companies.grep /city/
Run Code Online (Sandbox Code Playgroud)

但是,ruby不允许我在rails视图中输入带有块的area_code.相反,我被迫像这样硬编码:

companies.grep /miami/
Run Code Online (Sandbox Code Playgroud)

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

city = miami
Run Code Online (Sandbox Code Playgroud)

但是,它更新.你知道我可以将变量传递给grep方法吗?

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

Ama*_*dan 20

companies.grep /#{city}/
# or
companies.grep Regexp.new(city)
Run Code Online (Sandbox Code Playgroud)

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

companies.grep /#{Regexp.escape city}/
# or
companies.grep Regexp.new(Regexp.escape city)
Run Code Online (Sandbox Code Playgroud)