-1
我想删除.txt文件中所有以(扫描.....)开头的部分行。我尝试的命令是:Powershell高级查找替换
(gc A.txt).replace('(Scan*\)', '') | sc A.txt
上午我搞砸了与野生卡,或者是PowerShell的无法理解,我从字面上试图找到()左右扫描*和替换它们吗?
我想删除.txt文件中所有以(扫描.....)开头的部分行。我尝试的命令是:Powershell高级查找替换
(gc A.txt).replace('(Scan*\)', '') | sc A.txt
上午我搞砸了与野生卡,或者是PowerShell的无法理解,我从字面上试图找到()左右扫描*和替换它们吗?
您正在使用的.replace()
方法仅替换字符串字符串,不允许使用任何通配符/正则表达式。以下列方式使用-replace
:
(gc A.txt) -replace '\(Scan[^)]*\)', '' | sc A.txt
的\(Scan[^)]*\)
正则表达式匹配:
\(
- 字面(
Scan
- 一个文字字符序列[^)]*
- 零个或多个(*
)除)
之外的字符\)
- 文字)
。替换字符串为空,因为您要删除匹配项。
如果是正则表达式,则需要使用正则表达式,而不是通配符:'\(Scan [^)] * \)'或'\(Scan。*?\)' –
Try'(gc A. txt)-replace'\(Scan [^)] * \)',''' –
@WiktorStribiżew:这是'string.Replace'方法,它只是一个字面替换。 – Joey