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

···

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

ruby gives more (objects), see class MatchData - RDoc Documentation

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

···

On 12/4/07, John Sheahan <contact@thirdorder.net> 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].

John Sheahan wrote:

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
  
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 Sheahan 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"

class MatchData - RDoc Documentation

-Justin

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

You can also do like you would in perl...

"TitleA" =~ /^Title([a-zA-Z0-9])/
puts $1
# => A

Regards,
Jordan

···

On Dec 3, 8:54 pm, John Sheahan <cont...@thirdorder.net> wrote:

I got it!

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

Collins wrote:
> John Sheahan 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"

>class MatchData - RDoc Documentation

> -Justin

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