我尝试用$(foo)\bar
字符串替换所有出现的$(foo)\baz\bar
,我不需要扩展任何内容而且我不需要使用正则表达式。
这是我的代码:
if($myString.contains("$(foo)\bar\"))
{
$myString = $myString -replace "$(foo)\bar\","$(foo)\baz\bar\"
...
}
它不起作用,我完全失去了逃避$
,(
,\
等字符的方式,时间和地点。我应该在字符串中使用单引号还是双引号?
这是我的尝试:
if($myString.contains("`$(foo)\\bar\\"))
{
$myString = $myString -replace '\$(foo)\\bar\\','\$(foo)\\baz\\bar\\'
...
}
答案 0 :(得分:1)
-replace
命令始终适用于正则表达式。您可以正确地转义字符串,也可以只使用字符串对象的.replace
- 方法。该方法不使用正则表达式,因此不需要转义:
if($myString.contains("`$(foo)\\bar\\"))
{
$myString = $myString.replace( '$(foo)\bar\','$(foo)\baz\bar\')
...
}