Pathologically Eclectic Rubbish Lister | |
PerlMonks |
How do I change the Nth occurrence of something?by faq_monk (Initiate) |
on Oct 08, 1999 at 00:20 UTC ( [id://599]=perlfaq nodetype: print w/replies, xml ) | Need Help?? |
Current Perl documentation can be found at perldoc.perl.org. Here is our local, out-dated (pre-5.6) version:
You have to keep track of
N yourself. For example, let's say you want to change
the fifth occurrence of
$count = 0; s{((whom?)ever)}{ ++$count == 5 # is it the 5th? ? "${2}soever" # yes, swap : $1 # renege and leave it there }igex;
In the more general case, you can use the
$WANT = 3; $count = 0; while (/(\w+)\s+fish\b/gi) { if (++$count == $WANT) { print "The third fish is a $1 one.\n"; # Warning: don't `last' out of this loop } }
That prints out:
/(?:\w+\s+fish\s+){2}(\w+)\s+fish/i;
|
|