John W. Krahn writes:

Tom Allison wrote:

How do I pull all the words from a line between the two words 'from' and
'by' when I have NO IDEA what's in there, but I know they are all in one
line. To make it more difficult. 'by' is optional... Like this:
from......by......
or
from...... I want all the stuff inside.
Initially I'm thinking
/from (.+?) (?:by (.+?))?/
Anything better?

$ perl -le'
for ( "abc from to the word by and the end", "abc from to the end" ) {
    print $1 if /from(.*?(?=by)|.*)/;
    }
'
 to the word
 to the end

I have no Perl on this PC to test this, but I would have thought print $1 if /\bfrom\s+(.*?)\s*(?:\bby\b|$)/; would do the trick. Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to