I need to replace a word in a string looking like \"duh duh something else duh\". I only need to replace the second \"duh\", but the first and the last ones need to stay unt
Will something like this work?
System.out.println(
"1 duh 2 duh duh 3 duh"
.replaceFirst("(duh.*?)duh", "$1bleh")
); // prints "1 duh 2 bleh duh 3 duh"
If you just want to replace the second occurrence of a pattern in a string, you really don't need this "starting from" index calculation.
As a bonus, if you want to replace every other duh (i.e. second, fourth, sixth, etc), then just invoke replaceAll instead of replaceFirst.