|
|
| Welcome to the Monastery | |
| 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;
|
|