在 powershell 脚本中使用替换而不是替换

Using replace in powershell script not replacing

为什么替换不起作用?这是代码

$TestString = "<css>1</css><PredefinedValidator>9DE32F03C2734FFCB2D681FF6283FE88</PredefinedValidator><RegexPattern>^[\da-zA-Z\s+()\-']+$</RegexPattern><item>2</item>"
$NewString =  $TestString  -replace "<PredefinedValidator>9DE32F03C2734FFCB2D681FF6283FE88</PredefinedValidator><RegexPattern>^[\da-zA-Z\s+()\-']+$</RegexPattern>","<PredefinedValidator>9DE32F03C2734FFCB2D681FF6283FE88</PredefinedValidator><RegexPattern>^[0-9]+$</RegexPattern>"
write-host  $NewString

我做错了什么吗?

如有任何建议,我们将不胜感激。

提前致谢

替换运算符将替换匹配正则表达式模式的字符串。从它的外观来看,您正试图用另一个文字字符串替换一个文字字符串,并且它们恰好也有一个正则表达式模式。改用 Replace 方法

$TestString = "<css>1</css><PredefinedValidator>9DE32F03C2734FFCB2D681FF6283FE88</PredefinedValidator><RegexPattern>^[\da-zA-Z\s+()\-']+$</RegexPattern><item>2</item>"
$NewString =  $TestString.Replace("<PredefinedValidator>9DE32F03C2734FFCB2D681FF6283FE88</PredefinedValidator><RegexPattern>^[\da-zA-Z\s+()\-']+$</RegexPattern>","<PredefinedValidator>9DE32F03C2734FFCB2D681FF6283FE88</PredefinedValidator><RegexPattern>^[0-9]+$</RegexPattern>")
write-host  $NewString