如何使用PowerShell替换HTML中包含特殊字符的字符串?

时间:2017-04-26 18:05:32

标签: html powershell

`

Get-Content C:\Users\sfair\Documents\Frontline\report.htm | Out-File C:\Users\sfair\Documents\Frontline\report1.txt
$editreport = C:\Users\sfair\Documents\Frontline\report1.txt 
$editreport -replace [regex]::Escape('employee(id','employee</th><th>id</th>')
$editreport -replace [regex]::Escape('employeeType(id)','id')
$editreport -replace [regex]::Escape('employee(','employee</td><td>')
$editreport -replace [regex]::Escape(')</td>','</td>')

` 我收到了所有四个替换操作的类似消息:

Cannot find an overload for "Escape" and the argument count: "2".
At C:\Users\sfair\Documents\Frontline\still-trying1.ps1:40 char:1
+ $editreport -replace [regex]::Escape('employee(id','employee</th><th> ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest

enter image description here 我在PowerShell中生成了一个HTML文件,读入.CSV。我想编辑HTML,用另一个字符串替换一个字符串。

示例:$ data -replace&#34; employee(id&#34;,&#34; employeeid&#34;

这会产生以下消息:

正则表达式模式&#34;员工(id&#34;,&#34; employeeid&#34;无效。

1 个答案:

答案 0 :(得分:1)

使用反斜杠转义正则表达式中的特殊字符。

$data -replace 'employee\(id', 'employeeid'