right, what was i thinking? thank you. On 10/13/06, John W. Krahn <[EMAIL PROTECTED]> wrote:
I.B. wrote: > sorry, I didn't fraze my question correctly. ^^^^^ phrase > example : > $line="abcxabcxxabcxxxabc"; > > how to match everything beofre "xxx" but not xxx itself? > the answer i got is to use lookaheads: > > my $line = "abcxxabcxxxabc"; > if ($line =~ m{(.*?(?:(?!xxx).))xxx}){ > print "matched: $1\n"; > } > else{ > print "failed\n"; > } Your expression is too complicated: if ( $line =~ /(.*?)xxx/ ) { would accomplish the same thing. $ perl -le'$_ = "abcxabcxxabcxxxabc"; print $1 if /(.*?(?:(?!xxx).))xxx/' abcxabcxxabc $ perl -le'$_ = "abcxabcxxabcxxxabc"; print $1 if /(.*?)xxx/' abcxabcxxabc John -- Perl isn't a toolbox, but a small machine shop where you can special-order certain sorts of tools at low cost and in short order. -- Larry Wall -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>