regex – 当我在PowerShell中选择字符串(grep)时,如何只返回匹配的正则表达式?

前端之家收集整理的这篇文章主要介绍了regex – 当我在PowerShell中选择字符串(grep)时,如何只返回匹配的正则表达式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图找到一个文件中的模式。当我得到一个匹配使用Select-String我不想要整行,我只想要匹配的部分。

有没有参数我可以用来做这个?

例如:

如果我这样做

select-string .-.-.

并且该文件包含以下行:

abc 1-2-3 abc

我想得到一个只有1-2-3的结果,而不是整行得到返回。

我想知道Powershell等价于grep -o

大卫在正确的道路上。 [regex]是System.Text.RegularExpressions.Regex的类型加速器
[regex]$regex = '.-.-.'
$regex.Matches('abc 1-2-3 abc') | foreach-object {$_.Value}
$regex.Matches('abc 1-2-3 abc 4-5-6') | foreach-object {$_.Value}

你可以将它包装在一个函数中,如果太冗长。

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