Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re^4: Perl RE; how to capture, and replace based on a block?

by taint (Chaplain)
on Dec 18, 2013 at 08:02 UTC ( #1067608=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Perl RE; how to capture, and replace based on a block?
in thread Perl RE; how to capture, and replace based on a block?

Greetings, Laurent_R, and thanks for the reply.

Oh yes. I'm keen on the \n v \r v \n\r thing, and you're absolutely correct. Except, in my case, I'm on a *NIX box, and I've written the files myself. So I know they're utf-8 (no BOM), with newlines, no "hard" returns. :)

Maybe it's just the examples I was reading (perlrequick, perlretut, and perlfaq6) but I got the impression that Perl RE wasn't greedy. More Perl RE reading, I guess.

Thanks again, for the response Laurent_R.

--Chris

Yes. What say about me, is true.


Comment on Re^4: Perl RE; how to capture, and replace based on a block?
Re^5: Perl RE; how to capture, and replace based on a block?
by Laurent_R (Vicar) on Dec 18, 2013 at 18:36 UTC

    Hi Chris

    just a quick example on greedy and non greedy quantifiers, under the Perl debugger:

    DB<1> $string = "foo bar foo bar foo"; DB<2> x $string =~ /(fo.*ar)/ 0 'foo bar foo bar' DB<3> x $string =~ /(fo.*?ar)/ 0 'foo bar' DB<4>
    As you can see the default "*" quantifier is greedy, so that the regex tries to match as much as possible. Using the modified "*?" quantifier, the regex becomes non greedy. You will see the same type of result if you try the "+" and the "+?" quantifiers.

      Thanks Laurent_R for the help.

      Your example helps better explain why I got the impression Perl was not greedy, the way sed is. Most all the examples I read in the perldocs, used .*?. But my experiments, and re-training myself with Perl RE's. Seems to show, once I get out of the sed habits. Perl will be a lot more flexible, and powerful. I should have started this a l-o-o-n-g time ago. :P

      Thanks again, Laurent_R. I really appreciate it.

      --Chris

      Yes. What say about me, is true.
      

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1067608]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (13)
As of 2014-08-22 15:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (159 votes), past polls