Hello Corion
Thank you very much for your suggestion! It helps a lot!
my @tests = ( '"abcd\\\\efgh"', '"abcd\\""', '"abcd\\"efgh"', '"abcd\\\\\\"efgh"', '"abcd\\\\i\\"efgh"', '"abcd\\\\"', ); foreach my $test (@tests) { print "Try for \"$test\":\n"; if ($test =~ /^"((?:[^"\\]|\\["\\])+)"$/) { print "It matches!\n"; print '$1: ' . $1 . "\n"; print '$2: ' . (defined($2) ? "\$2 is defined\n" : "\$2 is NOT def +ined\n"); } else { print "It does not match!\n"; } print "\n"; }
Result:
Try for ""abcd\\efgh"": It matches! $1: abcd\\efgh $2: $2 is NOT defined Try for ""abcd\""": It matches! $1: abcd\" $2: $2 is NOT defined Try for ""abcd\"efgh"": It matches! $1: abcd\"efgh $2: $2 is NOT defined Try for ""abcd\\\"efgh"": It matches! $1: abcd\\\"efgh $2: $2 is NOT defined Try for ""abcd\\i\"efgh"": It matches! $1: abcd\\i\"efgh $2: $2 is NOT defined Try for ""abcd\\"": It matches! $1: abcd\\ $2: $2 is NOT defined
Best regards
Denis
In reply to Re^2: negative lookbehind and VERY strange capture
by Denis.Beurive
in thread negative lookbehind and VERY strange capture
by Denis.Beurive
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |