[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby regexp Match

jackster the jackle

12/4/2007 2:22:00 AM

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-....

4 Answers

botp

12/4/2007 2:39:00 AM

0

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].

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

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

Justin Collins

12/4/2007 2:41:00 AM

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/Matc...

-Justin


jackster the jackle

12/4/2007 2:54:00 AM

0

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"
>
>
> http://ruby-doc.org/core/classes/Matc...
>
> -Justin

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

MonkeeSage

12/4/2007 3:28:00 AM

0

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"
>
> >http://ruby-doc.org/core/classes/Matc...
>
> > -Justin
>
> --
> Posted viahttp://www.ruby-....

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

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

Regards,
Jordan