Named backreferences with Oniguruma

B

Berger, Daniel

Hi all,

Ruby 1.8.4
Oniguruma 2.5.6

I'm trying to figure out how to get at named backreferences with
Oniguruma, but I'm having some problems figuring it out. Here's the
interface I would *like* to have:

# pseudo.rb
str =3D "hello world"
reg =3D /^(?<first>\w+?)\s(?<last>\w+)$/

match =3D reg.match(str)

first =3D match[:first]
last =3D match[:last]

But this doesn't work - I mean, the regex works, but the way I'm trying
to get at the backreferences does not. Nor does there appear to be
anything like Python's MatchData#groupdict() method (which returns a
hash).

How do I get at the named backreferences from the MatchData object? Is
there a way?

Thanks,

Dan


This communication is the property of Qwest and may contain confidential =
or
privileged information. Unauthorized use of this communication is =
strictly=20
prohibited and may be unlawful. If you have received this communication =

in error, please immediately notify the sender by reply e-mail and =
destroy=20
all copies of the communication and any attachments.
 
T

ts

B> reg = /^(?<first>\w+?)\s(?<last>\w+)$/

moulon% cat b.rb
#!/usr/bin/ruby
str = "hello world"
reg = /^(?<first>\w+?)\s(?<last>\w+)$/

match = reg.match(str)

first = match[:first]
last = match[:last]

p first,last
moulon%

moulon% ruby -v b.rb
ruby 1.9.0 (2006-07-14) [i686-linux]
"hello"
"world"
moulon%

moulon% grep ONIGURUMA_VERSION ruby/oniguruma.h
#define ONIGURUMA_VERSION_MAJOR 4
#define ONIGURUMA_VERSION_MINOR 0
#define ONIGURUMA_VERSION_TEENY 3
moulon%


Guy Decoux
 
N

nobu

Hi,

At Thu, 27 Jul 2006 22:11:02 +0900,
Berger, Daniel wrote in [ruby-talk:204263]:
Ruby 1.8.4
Oniguruma 2.5.6

Not 1.9? That combination isn't supported officially.
I'm trying to figure out how to get at named backreferences with
Oniguruma, but I'm having some problems figuring it out. Here's the
interface I would *like* to have:

MatchData#[] in 1.8 doesn't take symbols.
 
D

Daniel Berger

Hi,
=20
At Thu, 27 Jul 2006 22:11:02 +0900,
Berger, Daniel wrote in [ruby-talk:204263]:
Ruby 1.8.4
Oniguruma 2.5.6
=20
Not 1.9? That combination isn't supported officially.

Oh, I didn't know that.
I'm trying to figure out how to get at named backreferences with
Oniguruma, but I'm having some problems figuring it out. Here's the
interface I would *like* to have:
=20
MatchData#[] in 1.8 doesn't take symbols.
=20

Couldn't it be added? I mean, it's a custom re.c anyway, isn't it?

Thanks,

Dan


This communication is the property of Qwest and may contain confidential =
or
privileged information. Unauthorized use of this communication is =
strictly=20
prohibited and may be unlawful. If you have received this communication =

in error, please immediately notify the sender by reply e-mail and =
destroy=20
all copies of the communication and any attachments.
 
N

nobu

Hi,

At Thu, 27 Jul 2006 22:35:18 +0900,
Daniel Berger wrote in [ruby-talk:204267]:
I'm trying to figure out how to get at named backreferences with
Oniguruma, but I'm having some problems figuring it out. Here's the
interface I would *like* to have:

MatchData#[] in 1.8 doesn't take symbols.

Couldn't it be added? I mean, it's a custom re.c anyway, isn't it?

To which? Oniguruma doesn't contain the patch for 1.8?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,969
Messages
2,570,161
Members
46,708
Latest member
SherleneF1

Latest Threads

Top