I want to use grep with a string as regex pattern. How can i do that?
Example:
myArray.grep(/asd/i) #Works perfectly.
But i want to prepare my statement first
searchString = '/asd/i'
myArray.grep(searchString) # Fails
How can i achieve this? I need a string prepared because this is going into a search algorithm and query is going to change on every request. Thanks.
Regular expressions support interpolation, just like strings:
var = "hello"
re = /#{var}/i
p re #=> /hello/i
Having something in quotes is not the same as the thing itself. /a/i
is Regexp, "/a/i"
is string. To construct a Regexp from string do this:
r = Regexp.new str
myArray.grep(r)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With