prasadbabu has asked for the wisdom of the Perl Monks concerning the following question:
Hi Fellow Monks,
Good Day.
A few minutes back while coding I faced the below problem.
I was trying to match all the string till it matches two consecutive new line character. Usually I use negative look ahead format for matching such kind of string. But today I was not able to match the string and I got the below error message since I used 'warnings'.
May I know the reason why I am getting the error, can't I use newline characters for these kind of matching?
The below code and data is sample for testing, not real code and data.
updated: added __DATA__use strict; use warnings; my $s = do {local $/, <DATA>}; $s =~ s/\w+\s+\w+\s*\d+\s*\,(?:(?!(?:\n\n).)*)\n\n/'test'/egsi; #getti +ng error #$s =~ s/\w+\s+\w+\s*\d+\s*\,.*?\n\n/'test'/egsi; #working fine print $s; output: ------- (?!(?:\n\n).)* matches null string many times in regex; marked by <-- +HERE in m/ \w+\s+\w+\s*\d+\s*,(?:(?!(?:\n\n).)* <-- HERE )\n\n/ at pract.pl line +6. LMTRILOG db 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 +, 0 , 0 , 0; db 25 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 + , 0 , 0 , 0; __DATA__ LMTRILOG db 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 +, 0 , 0 , 0; db 25 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 + , 0 , 0 , 0;
Thanks in advance
Prasad
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Negative Look Ahead issue
by moritz (Cardinal) on Jul 28, 2008 at 12:38 UTC | |
Re: Negative Look Ahead issue
by olus (Curate) on Jul 28, 2008 at 12:44 UTC |
Back to
Seekers of Perl Wisdom