gka*_*kck 8 ruby regex ruby-1.9
我想使用带字符串的grep作为正则表达式模式.我怎样才能做到这一点?
例:
myArray.grep(/asd/i) #Works perfectly.
Run Code Online (Sandbox Code Playgroud)
但我想先准备好我的发言
searchString = '/asd/i'
myArray.grep(searchString) # Fails
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这一目标?我需要准备一个字符串,因为这将进入搜索算法,并且查询将在每个请求上发生变化.谢谢.
ste*_*lag 11
正则表达式支持插值,就像字符串一样:
var = "hello"
re = /#{var}/i
p re #=> /hello/i
Run Code Online (Sandbox Code Playgroud)
引号中的某些内容与该内容本身不同。/a/i是正则表达式,"/a/i"是字符串。要从字符串构造正则表达式,请执行以下操作:
r = Regexp.new str
myArray.grep(r)
Run Code Online (Sandbox Code Playgroud)