powershell:查找文件中所有匹配模式的字符串

powershell: find all strings matching pattern in a file

我正在遍历与模式 maint-*.js.

匹配的所有文件

这些文件包含 __MyTokenA____MyTokenB__ 等形式的标记...所以我想找到所有这些标记。我试过下面的正则表达式,但没有找到任何东西。 我想将令牌存储在一个数组中。正确的方法是什么?

$files = Get-ChildItem dist/main-*.js


 Foreach ($file in $files)
 {
    $matches = $file | Select-String ', "(?:\(__\))(.*?)(?:\(__\))"' -AllMatches
    echo $matches
 }

我认为您可以简化正则表达式,然后枚举匹配项 属性。

$file | Select-String '__(.*?)__' -AllMatches | ForEach-Object {
    $_
    $_.Matches | Select-Object Value
}