Powershell高级查找替换

时间:2017-03-09 13:48:21

标签: string powershell

我正在尝试删除.txt文件中的部分行,这些行都以(Scan .....)开头。我正在尝试的命令是:

(gc A.txt).replace('(Scan*\)', '') | sc A.txt

我是不是搞砸了外卡,或者是PowerShell无法理解我真的试图在Scan *周围找到()并替换它们?

1 个答案:

答案 0 :(得分:0)

您使用的.replace()方法仅替换 literal 字符串,不允许使用任何通配符/正则表达式。以下列方式使用-replace

(gc A.txt) -replace '\(Scan[^)]*\)', '' | sc A.txt

\(Scan[^)]*\)正则表达式匹配:

  • \( - 文字(
  • Scan - 文字字符序列
  • [^)]* - 除*
  • 以外的零个或多个())个字符
  • \) - 文字)

替换字符串为空,因为您要删除匹配项。