in reply to Re: Re: Re: New regex trick...
in thread New regex trick...
What \K is doing is faking WHERE in the string (and the pattern) the regex started to match. Compare:
See, \K tells $& that THIS is where it begins. This is useful in substitutions:$str = "Match 9 the 1 last 6 digit 2 blah"; $str =~ /.*\d/; print "[$`] [$&] [$']\n"; $str =~ /.*\K\d/; print "[$`] [$&] [$']\n"; __END__ [] [Match 9 the 1 last 6 digit 2] [ blah] [Match 9 the 1 last 6 digit ] [2] [ blah]
And you save time on replacing "saveme" with itself.# you go from this: s/(saveme)deleteme/$1/; # to this: s/saveme\Kdeleteme//;
_____________________________________________________
Jeff[japhy]Pinyan:
Perl,
regex,
and perl
hacker, who'd like a job (NYC-area)
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Re: Re: Re: New regex trick...
by redsquirrel (Hermit) on Jul 22, 2002 at 21:08 UTC |