What am I missing?
I think rxrx :) pos , @- and @+
So it matched the zero length string, doesn't advance position, then matches one newline at same position thus advancing position, then it matches the zero length string again, and thats the end of matches
"a\n\n\nb" s(2)e(2)pos(2)len(0) ("a\n", "", "\n\nb") s(2)e(3)pos(3)len(1) ("a\n", "\n", "\nb") s(3)e(3)pos(3)len(0) ("a\n\n", "", "\nb")
I think that makes sense :)
#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; for my $many ( 1..4 ){ my $s = "a\n".("\n" x $many )."\nb"; dd( $s ); while( $s =~ m{^(\s*?)$}gm ){ my $pos = pos( $s ); my $one = defined $1 ? $1 : ''; my $len = length $one; my $start = $-[0]; # @- my $lend = $+[0]; # @+ print "s($start)e($lend)pos($pos)len($len) "; dd( ( "".substr $s, 0, $pos - $len), ( "".substr $s, $pos-$len, $len ), ( "".substr $s, $pos ) ); } } __END__ "a\n\n\nb" s(2)e(2)pos(2)len(0) ("a\n", "", "\n\nb") s(2)e(3)pos(3)len(1) ("a\n", "\n", "\nb") s(3)e(3)pos(3)len(0) ("a\n\n", "", "\nb") "a\n\n\n\nb" s(2)e(2)pos(2)len(0) ("a\n", "", "\n\n\nb") s(2)e(3)pos(3)len(1) ("a\n", "\n", "\n\nb") s(3)e(3)pos(3)len(0) ("a\n\n", "", "\n\nb") s(3)e(4)pos(4)len(1) ("a\n\n", "\n", "\nb") s(4)e(4)pos(4)len(0) ("a\n\n\n", "", "\nb") "a\n\n\n\n\nb" s(2)e(2)pos(2)len(0) ("a\n", "", "\n\n\n\nb") s(2)e(3)pos(3)len(1) ("a\n", "\n", "\n\n\nb") s(3)e(3)pos(3)len(0) ("a\n\n", "", "\n\n\nb") s(3)e(4)pos(4)len(1) ("a\n\n", "\n", "\n\nb") s(4)e(4)pos(4)len(0) ("a\n\n\n", "", "\n\nb") s(4)e(5)pos(5)len(1) ("a\n\n\n", "\n", "\nb") s(5)e(5)pos(5)len(0) ("a\n\n\n\n", "", "\nb") "a\n\n\n\n\n\nb" s(2)e(2)pos(2)len(0) ("a\n", "", "\n\n\n\n\nb") s(2)e(3)pos(3)len(1) ("a\n", "\n", "\n\n\n\nb") s(3)e(3)pos(3)len(0) ("a\n\n", "", "\n\n\n\nb") s(3)e(4)pos(4)len(1) ("a\n\n", "\n", "\n\n\nb") s(4)e(4)pos(4)len(0) ("a\n\n\n", "", "\n\n\nb") s(4)e(5)pos(5)len(1) ("a\n\n\n", "\n", "\n\nb") s(5)e(5)pos(5)len(0) ("a\n\n\n\n", "", "\n\nb") s(5)e(6)pos(6)len(1) ("a\n\n\n\n", "\n", "\nb") s(6)e(6)pos(6)len(0) ("a\n\n\n\n\n", "", "\nb")
In reply to Re^6: regex doubt on excluding
by Anonymous Monk
in thread regex doubt on excluding
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |