Scan - variable as pattern

I want to define a variable, like:
s='.'

And then use that variable as an argument for scan

str.scan(/s/)

In the above I want the . substituted for s.

Is there any way this can be done - pass a variable to scan?

Thanks

···

--
Posted via http://www.ruby-forum.com/.

You can interpolate regular expressions just as you would strings:

str.scan(/#{s}/)

···

On Sun, Dec 25, 2011 at 6:52 PM, Sashi K. <sashidkr@gmail.com> wrote:

I want to define a variable, like:
s='.'

And then use that variable as an argument for scan

str.scan(/s/)

In the above I want the . substituted for s.

Is there any way this can be done - pass a variable to scan?

Thanks

--
Posted via http://www.ruby-forum.com/\.

--
Tony Arcieri

The docs for rRegexp (http://www.ruby-doc.org/core-1.9.3/Regexp.html)
have a example
you need str.scan /#{s}/

cheers

I'd prefer to pass a Regexp instance directly in the variable:

# any of these will do
r = /./
r = Regexp.new '.'
r = /#{s}/

str.scan r do |match|
...
end

Cheers

robert

···

On Mon, Dec 26, 2011 at 4:23 AM, Chris Hulan <chris.hulan@gmail.com> wrote:

The docs for rRegexp (http://www.ruby-doc.org/core-1.9.3/Regexp.html\)
have a example
you need str.scan /#{s}/

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/