Replace substring in PowerShell Replace substring in PowerShell powershell powershell

Replace substring in PowerShell


PowerShell strings are just .NET strings, so you can:

PS> $x = '-foo-'PS> $x.Replace('-', '&')&foo&

...or:

PS> $x = '-foo-'PS> $x.Replace('-foo-', '&bar&')&bar&

Obviously, if you want to keep the result, assign it to another variable:

PS> $y = $x.Replace($search, $replace)


The built-in -replace operator allows you to use a regex for this e.g.:

C:\PS> '-content-' -replace '-([^-]+)-', '&$1&'&content&

Note the use of single quotes is essential on the replacement string so PowerShell doesn't interpret the $1 capture group.