【问题标题】:Using replace in powershell script not replacing在 powershell 脚本中使用替换不替换
【发布时间】:2021-06-09 01:26:43
【问题描述】:

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

$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

是不是我做错了什么?

任何建议将不胜感激。

提前致谢

【问题讨论】:

  • 如果这是关于在 XML 文件中进行更改,您不应该使用 textual 替换方法。有很多关于如何做到这一点的示例,但是如果您向我们展示 xml,我们可以为您提供帮助。

标签: regex powershell replace powershell-4.0


【解决方案1】:

替换运算符将替换匹配正则表达式模式的字符串。从它的外观来看,您正试图用另一个文字字符串替换一个文字字符串,并且它们都碰巧在其中也有一个正则表达式模式。请改用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2021-01-12
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 2018-07-11
    相关资源
    最近更新 更多