in reply to Re: Re: Re: Regex Question
in thread Regex Question

I was trying to avoid using a blank line as a record separator because this file is prone to some corruption and I wouldn't want spurious blank lines interfering with the correct splitting of records.

To use this approach I would have to preprocess the file to strip any blank lines not correctly terminating records.

If I am going to do this I may as well just look for the record itself. How do I only match a string which is followed by a blank line?

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Regex Question
by BrowserUk (Patriarch) on Jun 03, 2003 at 12:53 UTC

    You might get away with this, provided the spurious blank lines don't turn up just after the ZONE 001 in the third section of your example dataset.

    #! perl -slw use strict; my $data = do{ local $/; <DATA> }; print "'$1'" while $data =~ m[ ( ^(?:DES|TN) .+? (?:^DATE|ZONE) .+\n\s*(?:\n|$) ) ]gsx;

    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller