From: Ahmad Azizan on
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/.

From: Ralph Shnelvar on
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:

AA> Hello,

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

AA> Example input (2 scenario):

AA> 1.

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

AA> << >>

AA> 2.

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

AA> << >>

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

AA> 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 ?

AA> Thank you in advance



--
Best regards,
Ralph mailto:ralphs(a)dos32.com


From: Ahmad Azizan on
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
http://www.tutorialspoint.com/ruby/ruby_regular_expressions.htm

Really appreciate that, thanks

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