Замена подстроки в PowerShell

у меня есть строка в форме -content-, и я хотел бы заменить его с &content&. Как это сделать с помощью replace в PowerShell?

2 ответов


встроенный -replace оператор позволяет использовать regex для этого, например:

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

обратите внимание на использование кавычек является важным инструментом на строку замены, так что PowerShell не интерпретировать группу захвата 1$.


строки PowerShell - это просто строки .NET, поэтому вы можете:

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

...или:

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

очевидно, что если вы хотите сохранить результат, присвоить его другой переменной:

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