in reply to Re^4: Integrating match counts into regex matching
in thread Integrating match counts into regex matching

I'm not sure that it is a different question? Anyhow, my limited testing threw up one case where the negative lookbehind was necessary:

With and without negative lookbehind:

Perl> 'aaabb' =~ m[ (?{ local( $a, $b ) }) ( (?<!a) ( a (?{++$a}) )+ ( b (?{++$b}) )+ ) (?(?{ $a+1 == $b }) (?=) | (?!) ) ]x and print "'$1'";; Perl> 'aaabb' =~ m[ (?{ local( $a, $b ) }) ( ( a (?{++$a}) )+ ( b (?{++$b}) )+ ) (?(?{ $a+1 == $b }) (?=) | (?!) ) ]x and print "'$1'";; 'abb'

A breif further test suggests that the negative lookahead may be unnecessary, but I threw it in on the basis that it would do no harm, and may catch a case I haven't thought to test. With a regex using closures, it's doubtful if it will slow things down noticably?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^6: Integrating match counts into regex matching
by ikegami (Patriarch) on Dec 19, 2008 at 08:57 UTC