我试图找到一个文件中的模式。当我得到一个匹配使用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}
你可以将它包装在一个函数中,如果太冗长。