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/