Regexp: getting the first found

Hello,

I'm having some problem comprehending the regexp for my current need.

Example input (2 scenario):

1.

<<
/Filter
/FlateDecode
/Length 4169

stream
blablabla
endstream

<< >>

2.

<</Filter/FlateDecode/Length 4169>>
stream
blablabla
endstream

<< >>

I've trying to get the string after the string /Filter and the first
seen ">>" by using this regexp: /<<(.*)\/Filter(.*)>>/im

The problem is that, there is two >> in the input and the regexp takes
until the last >> it detected. How can I make it to get only until the
first >> that it detects ?

Thank you in advance

···

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

Ahmad,

Newbie here so take what I have to say with a grain of salt.

Your pattern is "greedy". To turn it into a lazy pattern add a
question mark thusly ...

/<<(.*)\/Filter(.*?)>>/

(untested)

Ralph

Monday, November 9, 2009, 2:43:12 AM, you wrote:

Hello,

I'm having some problem comprehending the regexp for my current need.

Example input (2 scenario):

1.

<<
/Filter
/FlateDecode
/Length 4169

stream
blablabla
endstream

<< >>

2.

<</Filter/FlateDecode/Length 4169>>
stream
blablabla
endstream

<< >>

I've trying to get the string after the string /Filter and the first

seen ">>>" by using this regexp: /<<(.*)\/Filter(.*)>>/im

The problem is that, there is two >> in the input and the regexp takes

until the last >>> it detected. How can I make it to get only until the
first >>> that it detects ?

···

Thank you in advance

--
Best regards,
Ralph mailto:ralphs@dos32.com

Ralph Shnelvar wrote:

Ahmad,

Newbie here so take what I have to say with a grain of salt.

Your pattern is "greedy". To turn it into a lazy pattern add a
question mark thusly ...

/<<(.*)\/Filter(.*?)>>/

(untested)

Ralph

Thanks for the reply.

Basically that's what I need. Thanks for pointing me towards new options
like "greedy". Because of that, I've been able to find new Ruby regex
reference like

Really appreciate that, thanks

···

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