Question:
How can you replace the last occurrence of a substring in a string?
Answer:
Regular Expressions can also perform this task. Here is an example of one that would work. It will replace the last occurrence of “Aquarius” with “Bumblebee Joe”
1 2 3 4 |
$text = "This is the dawning of the age of Aquarius. The age of Aquarius, Aquarius, Aquarius, Aquarius, Aquarius" $text -replace "(.*)Aquarius(.*)", '$1Bumblebee Joe$2' This is the dawning of the age of Aquarius. The age of Aquarius, Aquarius, Aquarius, Aquarius, Bumblebee Joe |
The greedy quantifier ensure that it take everything it can up until the last match of Aquarius
. The $1
and $2
represent the data before and after that match.
If you are using a variable for the replacement you need to use double quotes and escape the $
for the regex replacements so PowerShell does not try to treat them as a variable
1 2 3 |
$replace = "Bumblebee Joe" $text -replace "(.*)Aquarius(.*)", "`$1$replace`$2" |