如何使用PowerShell / RegEx查找带有空标记的所有HTML文件?

时间:2018-12-04 17:03:21

标签: regex powershell

我正在使用Powershell在数千个HTML文件中搜索包含空 </code>标记的文件。这些标签可能会出现在文件中,在开始/结束标签之间没有空格,空白或换行符。例如,它们可能看起来像以下任何一个</p> <pre class =“ lang-html prettyprint-override”> <code> <title>

   
 
 <代码> <标题>

 

到目前为止,我有以下代码

  Get-ChildItem locationPath * .htm -Recurse |
    选择字符串模式' [\ s] * '|
    组路径|
    选择名字
 

这可以为我提供与前两个示例匹配的所有文件的列表。但是,我正在努力寻找一种方法来匹配第三个示例,其中第三个示例具有换行符和未知数量的空格。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

Select-String逐行处理输入,因此不会捕获您的第三个示例。尝试执行以下操作以将输入作为单个字符串获取:

Get-ChildItem -Filter '*.htm' -Recurse | Where-Object {
    (Get-Content $_.FullName -Raw) -match '<title>\s*</title>'
} | Select-Object -Expand FullName

在PowerShell v3之前,您需要用Get-Content -Raw替换Get-Content | Out-String,因为参数-Raw是v3引入的。