in reply to Re^3: Regex help
in thread Regex help

Hm, I'd think that

(?!\w) and (?=\W)

and also

(?<=\w) and (?<!\W)

are equivalent!?

This would unify your "descripted" \b and japhy's "left side boundary".

Also, if it ... flies like a duck, quacks like a duck. .. It probably is a duck?!:

my $rt = [ [AM => [(qr/\b/) x 2]], [japhy1 => [qr/(?:(?=\w)(?<!\w)|(?=\W)(?<!\W))/, qr/(?:(?<=\w)(?!\ +w)|(?<=\W)(?!\W))/]], [japhy2 => [qr/(?(?=\w)(?<!\w)|(?<!\W))/, qr/(?(?<=\w)(?!\w)|(?!\W +))/]], [ysth => [(qr/(?:(?=\w)(?<!\w)|(?!\w)(?<=\w))/) x 2]], ]; for my $thing (qw(, th this)) { for (@$rt) { my $try = $_->[0] . (' ' x (6 - length $_->[0])); # propose +r my ($lb, $rb) = @{$_->[1]}; (my $text = "this,that & this, that & this ,that & this , that + this") =~ s/$lb($thing)$rb/>>$1<</g; print "[$try|$thing]$text\n"; } }

Do I have the wrong test cases?

Replies are listed 'Best First'.
Re^5: Regex help
by ysth (Canon) on Jan 15, 2006 at 19:49 UTC
    (?!\w) and (?=\W) differ at the end of the string.

    (?<=\w) and (?<!\W) differ at the start of the string.

      Oh, I was vaguely aware of it. But I didn't realize that that was the exact point japhy addressed!

      [\b ]*this*, [(?:(?=\w)(?<!\w)|(?=\W)(?<!\W))]*this*, [(?:(?<=\w)(?!\w)|(?<=\W)(?!\W))]this*,* [(?(?=\w)(?<!\w)|(?<!\W)) ]*this*, [(?(?<=\w)(?!\w)|(?!\W)) ]*this*,* [(?:(?=\w)(?<!\w)|(?!\w)(?<=\w))]*this*, [\b ],*that* [(?:(?=\w)(?<!\w)|(?=\W)(?<!\W))]*,*that [(?:(?<=\w)(?!\w)|(?<=\W)(?!\W))],*that* [(?(?=\w)(?<!\w)|(?<!\W)) ]*,*that* [(?(?<=\w)(?!\w)|(?!\W)) ],*that* [(?:(?=\w)(?<!\w)|(?!\w)(?<=\w))],*that*