我在文本文件(test.txt)中有这个字符串:
BLA BLA BLA BLA BLA Found 11 errors and 7 warnings
我执行此命令:
findstr /r "[0-9]+ errors" test.txt
为了获得11个错误字符串.
相反,输出是:
Found 11 errors and 7 warnings
有人可以帮忙吗?
解决方法
findstr工具不能仅用于提取匹配项.使用Powershell要容易得多.
这是一个例子:
$input_path = 'c:\ps\in.txt' $output_file = 'c:\ps\out.txt' $regex = '[0-9]+ errors' select-string -Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file
有关如何使用上述脚本的信息,请参阅the Windows PowerShell: Extracting Strings Using Regular Expressions article.