Findstr – 仅返回正则表达式匹配

前端之家收集整理的这篇文章主要介绍了Findstr – 仅返回正则表达式匹配前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在文本文件(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.

猜你在找的正则表达式相关文章