Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re^3: matching first paragraph satisfying condition

by mnshptl32 (Initiate)
on Aug 20, 2019 at 18:07 UTC ( #11104752=note: print w/replies, xml ) Need Help??

in reply to Re^2: matching first paragraph satisfying condition
in thread matching first paragraph satisfying condition

Thank you, haukex, for the information about the correct use of the branch reset, and sorry for making you guess my incorrect code. It was (and is) a bit of a moot point, since I've been given multiple perl solutions to my problem; however, for the record, my aforementioned failed attempt was to combine the ideas I had for what in my original post I described as the former and latter cases:

perl -0pe 's/(.*?\n*?([^ \n].*?)\n\n.*|.*?\n([^ \n].*?)\n\n.*)/$1/gs' +file.txt

This simply returned the whole file, and I thought it had something to do with the nested parentheses altering what $1 refers to. When I rewrite it correctly, as per haukex's helpful advice:

perl -0pe 's/(?|.*?\n*?([^ \n].*?)\n\n.*|.*?\n([^ \n].*?)\n\n.*)/$1/gs +' file.txt

it does return something, but that something is the desired output only in the case where the first line is non-indented. The reason, obviously, is that I was making a stupid mistake: the first alternative returns a match whether or not the first line of file.txt is indented, so that code is never going to return the output of:

perl -0pe 's/.*?\n([^ \n].*?)\n\n.*/$1/gs' file.txt

As I said, it's a moot point, but I thought this follow-up was worth mentioning in case someone who lands on this page learns from my stupid mistake.



Log In?

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (11)
As of 2020-01-21 17:53 GMT
Find Nodes?
    Voting Booth?