Interpolating a string into a regex
Same as string insertion.
if goo =~ /#{Regexp.quote(foo)}/
#...
Note that the Regexp.quote
in Jon L.'s answer is important!
if goo =~ /#{Regexp.quote(foo)}/
If you just do the "obvious" version:
if goo =~ /#{foo}/
then the periods in your match text are treated as regexp wildcards, and "0.0.0.0"
will match "0a0b0c0"
.
Note also that if you really just want to check for a substring match, you can simply do
if goo.include?(foo)
which doesn't require an additional quoting or worrying about special characters.
Probably Regexp.escape(foo)
would be a starting point, but is there a good reason you can't use the more conventional expression-interpolation: "my stuff #{mysubstitutionvariable}"
?
Also, you can just use !goo.match(foo).nil?
with a literal string.