在Powershell中替换REGEX

问题描述 投票:0回答:2

我正在尝试使用powershell修改html文件。但是无法替换'[DISPLAY_NAME]'。由于'[', ']'符号。

(Get-Content ".\hi4.htm") -replace '[DISPLAY_NAME]', 'tulpa' | Set-Content '.\hi4.htm'

但是输出如下。请检查并提供帮助。

<httulpatulpa>
<botulpatulpa>
<ttulpabtulpatulpa tulpattulpatulpatulpa="wtulpatulpath: 579tulpax;" bortulpatulpar="5" ctulpatulpatulpatulpatulpatulpactulpatulpag="0" ctulpatulpatulpatulpatulpatulpatulpatulpatulpag="0">
<tbotulpatulpa>
<tr>
<ttulpa tulpattulpatulpatulpa="fotulpat-ftulpatulpatulpatulpatulpa: Htulpatulpavtulpattulpactulpa, tulpartulpatulpatulpa, tulpatulpatulpatulpa-tulpatulpartulpaf; fotulpat-tulpatulpaztulpa: 18tulpax; wtulpatulpath: 577tulpax;" htulpatulpaght="64"><tulpatrotulpag>  [tulpatulpatulpatulpatulpatulpatulpatulpatulpatulpatulpatulpa] </tulpatrotulpag>&tulpabtulpatulpa;<tulpatulpag tulpattulpatulpatulpa="fot

-谢谢,Ravikiran M

regex powershell
2个回答
0
投票

正如评论所指出的,不需要像这样简单的操作使用-replace运算符(使用正则表达式引擎)。只需使用常规的String.Replace方法即可。

(Get-Content ".\hi4.htm").Replace('[DISPLAY NAME]','tulpa') | Set-Content '.\hi4.htm'

如果坚持使用正则表达式,则需要这样在字符串中转义特殊字符。

 (Get-Content ".\hi4.htm") -replace '\[DISPLAY_NAME\]', 'tulpa' | Set-Content '.\hi4.htm'

0
投票

您绝对可以替换[DISPLAY_NAME],只需要在使用[]运算符时转义-replace。要使用上面提供的代码,请注意以下更改:

(Get-Content ".\hi4.htm") -replace '\[DISPLAY_NAME\]', 'tulpa' | Set-Content '.\hi4.htm'
© www.soinside.com 2019 - 2024. All rights reserved.