Etz*_*tet 18 regex powershell powershell-2.0
假设我有字符串"blah blah F12 blah blah F32 blah blah blah blah",我想要匹配F12和F32,我将如何捕获两个Powershell魔法变量$ matches?
如果我在Powershell中运行以下代码:
$string = "blah blah F12 blah blah F32 blah blah blah"
$string -match "F\d\d"
Run Code Online (Sandbox Code Playgroud)
$ matches变量仅包含F12
我也尝试过:
$string -match "(F\d\d)"
Run Code Online (Sandbox Code Playgroud)
这次$ match有两个项目,但都是F12
我希望$ match包含F12和F32以进行进一步处理.我似乎无法找到办法.
非常感谢所有的帮助.:)
Kei*_*ill 42
您可以使用PowerShell 2.0中的Select-String执行此操作,如下所示:
Select-String F\d\d -input $string -AllMatches | Foreach {$_.matches}
Run Code Online (Sandbox Code Playgroud)
前段时间我曾要求-matchall MS Connect上有一个操作员,这个建议已被关闭,并附有此评论:
"这是通过select-string的-allmatches参数修复的."
son*_*njz 16
我建议使用这种语法,以便更容易处理您的匹配数组:
$string = "blah blah F12 blah blah F32 blah blah blah" ;
$matches = ([regex]'F\d\d').Matches($string);
$matches[1].Value; # get matching value for second occurance, F32
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37647 次 |
| 最近记录: |