0

`

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>')

` I get a similar message for all four replace operations:

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 I have generated an HTML file in PowerShell, reading in a .CSV. I would like to edit the HTML, replacing one string with another.

Example: $data -replace "employee(id", "employeeid"

This results in the following message:

The regular expression pattern "employee(id", "employeeid" is not valid.

Steve
  • 1
  • 1

1 Answers1

1

Use a backslash to escape special characters in a regex.

$data -replace 'employee\(id', 'employeeid'
Nick
  • 1,178
  • 3
  • 24
  • 36