2

我想在 HTML 中删除一个自我强加的区域。我已经制定了正确的正则表达式,我已经在Expresso中证明了这一点,并且正确的部分被突出显示。

快递

我在多行模式下运行它,并将此设置设置为 PowerShell 正则表达式字符串

Get-ChildItem (Get-Item -Path ".\" -Verbose).FullName -Recurse -Filter *.html |
Foreach-Object {
    Write-Host "Checking "$_.FullName
    $content = Get-Content $_.FullName
    $content = $content -replace "(?m)(^.*\#region REMOVE.*)[.|\n|\W|\w]*(^.*\#endregion REMOVE.*)",""
    Set-Content $content -Path $_.FullName
}

遗憾的是,尽管该文件已被触及,但该区域并未被删除。

4

1 回答 1

2

获取内容文档

Get-Content cmdlet 在路径指定的位置获取项目的内容,例如文件中的文本。它一次读取一行内容并返回一组对象,每个对象代表一行内容。

所以你的正则表达式是在一个数组上执行的,而不是文件内容的字符串。改成这样:

$content = [System.IO.File]::ReadAllText($_.FullName);

它会起作用。

于 2018-07-23T15:50:26.170 回答