Ruby regexp Match

I am trying to convert some old Perl scripts to Ruby and am stuck at a
spot where my Perl script is doing a regular expression match on some
text pulled from a webpage.

In Perl, I was able to grab the text I wanted by putting () around the
regular expression which represented the data I wanted, then access it
with the x[0] method.

Is there something like this in Ruby? I was looking through the String
class and don’t really see a method listed to do this.

I want to be able to do a kind of match like:

    m/^Title([a-zA-Z0-9])//g

and access what’s inside the () with x[0].

Thanks

jackster

On 12/4/07, John S. [email protected] wrote:

I want to be able to do a kind of match like:
m/^Title([a-zA-Z0-9])//g
and access what’s inside the () with x[0].

ruby gives more (objects), see
http://ruby-doc.org/core/classes/MatchData.html

some simple examples

t=“Title123asdf”
#=> “Title123asdf”
/^Title([a-zA-Z0-9])/.match(t)
#=> #MatchData:0x28b7b60
/^Title([a-zA-Z0-9])/.match(t)[0]
#=> “Title1”
/^Title([a-zA-Z0-9])/.match(t)[1]
#=> “1”
$~
#=> #MatchData:0x28afc94
$~[0]
#=> “Title1”
$~[1]
#=> “1”
x=/^Title([a-zA-Z0-9])/.match(t)
#=> #MatchData:0x28a8598
x[0]
#=> “Title1”
x[1]

kind regards -botp

John S. wrote:

I want to be able to do a kind of match like:

    m/^Title([a-zA-Z0-9])//g

and access what’s inside the () with x[0].

Thanks

jackster

Yes.

irb(main):001:0> result = “Title1”.match(/^Title([a-zA-Z0-9])/)
=> #MatchData:0xb7d90654
irb(main):002:0> result[1]
=> “1”
irb(main):003:0> $1
=> “1”
irb(main):004:0> Regexp.last_match[1]
=> “1”
irb(main):005:0> $~[1]
=> “1”

http://ruby-doc.org/core/classes/MatchData.html

-Justin

I got it!

thanks to everyone that posted a reply…you all were very helpful!
jackster

Collins wrote:

John S. wrote:

I want to be able to do a kind of match like:

    m/^Title([a-zA-Z0-9])//g

and access what’s inside the () with x[0].

Thanks

jackster

Yes.

irb(main):001:0> result = “Title1”.match(/^Title([a-zA-Z0-9])/)
=> #MatchData:0xb7d90654
irb(main):002:0> result[1]
=> “1”
irb(main):003:0> $1
=> “1”
irb(main):004:0> Regexp.last_match[1]
=> “1”
irb(main):005:0> $~[1]
=> “1”

http://ruby-doc.org/core/classes/MatchData.html

-Justin

On Dec 3, 8:54 pm, John S. [email protected] wrote:

I want to be able to do a kind of match like:

http://ruby-doc.org/core/classes/MatchData.html

-Justin


Posted viahttp://www.ruby-forum.com/.

You can also do like you would in perl…

“TitleA” =~ /^Title([a-zA-Z0-9])/
puts $1

=> A

Regards,
Jordan

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs