如何在文件中查找所有正则表达式匹配项

Arsen Mkrtchyan

我有一个正则表达式列表(大约2000个)和超过一百万个html文件。我想检查每个文件上的每个正则表达式是否成功。如何在Powershell上执行此操作?

性能很重要,因此我不想遍历正则表达式。

我尝试

$text | Select-String -Pattern pattern1, pattern2,...

它返回所有匹配项,但我也想找出哪种模式成功,哪些没有。我需要为每个文件构建成功正则表达式列表

Frode F.

您可以尝试这样的事情:

$regex = "^test","e2$"  #Or use (Get-Content <path to your regex file>)
$ht = @{}

#Modify Get-Childitem to your criterias(filter, path, recurse etc.)
Get-ChildItem -Filter *.txt | Select-String -Pattern $regex | ForEach-Object { 
    $ht[$_.Path] += @($_ | Select-Object -ExpandProperty Pattern)
}

测试输出:

$ht | Format-Table -AutoSize

Name                                               Value
----                                               -----
C:\Users\graimer\Desktop\New Text Document (2).txt {e2$}
C:\Users\graimer\Desktop\New Text Document.txt     {^test, e2$}

您没有指定所需的输出方式。

更新:要在一行上匹配多个模式,请尝试使用此方法(mjolinor的答案可能比此方法更快)。

$regex = "^test","e2$"  #Or use (Get-Content <path to your regex file>)
$ht = @{}

#Modify Get-Childitem to your criterias(filter, path, recurse etc.)
$regex | ForEach-Object {
    $pattern = $_
    Get-ChildItem -Filter *.txt | Select-String -Pattern $pattern | ForEach-Object { 
        $ht[$_.Path] += @($_ | Select-Object -ExpandProperty Pattern)
    }
}

UPDATE2:我没有足够的示例来尝试它,但是由于您有如此大量的文件,因此您可能希望尝试在遍历模式之前将文件读入内存。可能会更快。

$regex = "^test","e2$"  #Or use (Get-Content <path to your regex file>)
$ht = @{}

#Modify Get-Childitem to your criterias(filter, path, recurse etc.)
Get-ChildItem -Filter *.txt | ForEach-Object {
    $text = $_ | Get-Content
    $filename = $_.FullName
    $regex | ForEach-Object {
        $text | Select-String -Pattern $_ | ForEach-Object { 
            $ht[$filename] += @($_ | Select-Object -ExpandProperty Pattern)
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找所有正则表达式匹配项

来自分类Dev

查找所有正则表达式匹配项

来自分类Dev

如何在PHP中获取所有正则表达式匹配项?

来自分类Dev

正则表达式-查找字符串中的所有匹配项

来自分类Dev

使用正则表达式查找字符串中的所有匹配项

来自分类Dev

使用正则表达式查找字符串中的所有匹配项

来自分类Dev

在Bash中查看文件中的所有正则表达式匹配项

来自分类Dev

如何在R中设置正则表达式以查找具有grep或dplyr匹配项的变量?

来自分类Dev

如何在R中设置正则表达式以查找具有grep或dplyr匹配项的变量?

来自分类Dev

如何在python中找到所有可能的正则表达式匹配项?

来自分类Dev

如何在不考虑Ruby中的组的情况下获取所有正则表达式匹配项?

来自分类Dev

Python正则表达式,如何从字符串中删除所有匹配项

来自分类Dev

正则表达式将匹配项中的所有匹配项替换x次

来自分类Dev

生成正则表达式的所有匹配项

来自分类Dev

正则表达式返回所有匹配项

来自分类Dev

正则表达式子方法不会替换python正则表达式中的所有匹配项

来自分类Dev

python正则表达式,用于查找所有匹配项

来自分类Dev

Java - 正则表达式 - 查找所有匹配项

来自分类Dev

如何使用正则表达式在C文件中查找所有数组声明?

来自分类Dev

如何使用正则表达式在C文件中查找所有数组声明?

来自分类Dev

正则表达式查找以下集合中不存在的所有匹配项

来自分类Dev

使用Javascript以任意顺序使用正则表达式查找字符串中的所有匹配项

来自分类Dev

Python-正则表达式查找字符串中的所有匹配项并替换

来自分类Dev

如何从文件中复制正则表达式匹配项?需要从日志文件中获取所有MAC地址

来自分类Dev

如何在python正则表达式中使用str.contains获得所有匹配项?

来自分类Dev

递归查找其内容与特定正则表达式匹配的所有文件

来自分类Dev

如何在带有正则表达式的URL中查找精确字符串的第一个匹配项

来自分类Dev

如何查找在正则表达式中不包含字符串的匹配项

来自分类Dev

Python:如何使用正则表达式获取所有可能的匹配项

Related 相关文章

  1. 1

    查找所有正则表达式匹配项

  2. 2

    查找所有正则表达式匹配项

  3. 3

    如何在PHP中获取所有正则表达式匹配项?

  4. 4

    正则表达式-查找字符串中的所有匹配项

  5. 5

    使用正则表达式查找字符串中的所有匹配项

  6. 6

    使用正则表达式查找字符串中的所有匹配项

  7. 7

    在Bash中查看文件中的所有正则表达式匹配项

  8. 8

    如何在R中设置正则表达式以查找具有grep或dplyr匹配项的变量?

  9. 9

    如何在R中设置正则表达式以查找具有grep或dplyr匹配项的变量?

  10. 10

    如何在python中找到所有可能的正则表达式匹配项?

  11. 11

    如何在不考虑Ruby中的组的情况下获取所有正则表达式匹配项?

  12. 12

    Python正则表达式,如何从字符串中删除所有匹配项

  13. 13

    正则表达式将匹配项中的所有匹配项替换x次

  14. 14

    生成正则表达式的所有匹配项

  15. 15

    正则表达式返回所有匹配项

  16. 16

    正则表达式子方法不会替换python正则表达式中的所有匹配项

  17. 17

    python正则表达式,用于查找所有匹配项

  18. 18

    Java - 正则表达式 - 查找所有匹配项

  19. 19

    如何使用正则表达式在C文件中查找所有数组声明?

  20. 20

    如何使用正则表达式在C文件中查找所有数组声明?

  21. 21

    正则表达式查找以下集合中不存在的所有匹配项

  22. 22

    使用Javascript以任意顺序使用正则表达式查找字符串中的所有匹配项

  23. 23

    Python-正则表达式查找字符串中的所有匹配项并替换

  24. 24

    如何从文件中复制正则表达式匹配项?需要从日志文件中获取所有MAC地址

  25. 25

    如何在python正则表达式中使用str.contains获得所有匹配项?

  26. 26

    递归查找其内容与特定正则表达式匹配的所有文件

  27. 27

    如何在带有正则表达式的URL中查找精确字符串的第一个匹配项

  28. 28

    如何查找在正则表达式中不包含字符串的匹配项

  29. 29

    Python:如何使用正则表达式获取所有可能的匹配项

热门标签

归档