|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
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/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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
I got it!
thanks to everyone that posted a reply....you all were very ful! 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/MatchData.html > > -Justin -- Posted via http://www.ruby-forum.com/. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
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 ful! > 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/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 |
|
![]() |
| Outils de la discussion | |
|
|