从字符串 Powershell 中获取匹配项
Get matches from string Powershell
我想收集特定字符串中正则表达式的匹配项,并将它们放入数组中。
到目前为止,这是对我的代码的简化。
$myString = <p>a bunch of html</p> <a href="example.com/number1?ID=2014-89463">go</a>
$myMatches = $myString -match "\d{4}-\d{5}"
Write-Host $myMatches
$myMatches
是 return 整个字符串,但我想要的是 $myMatches
到 return 作为 2014-89463
(以及其余的任何比赛,还有更多)。
此外,$myString
实际上是一个字符串数组,每个都与上面列出的相似。
感谢您的帮助!
试试这个:
[regex]::Matches([string]$mystring,'(\d{4}-\d{5})') |
foreach {$_.groups[1].value}
将 $mystring
转换为 [string]
使其成为一个长字符串,每个元素之间用 space 分隔。然后 [regex]::Matches()
静态方法 returns 在字符串中找到所有匹配项。返回的匹配对象将为每个捕获的组都有一个组对象,.value
属性 是捕获的值。 foreach
循环只是遍历所有匹配项,并吐出捕获组 1 的值。
我想收集特定字符串中正则表达式的匹配项,并将它们放入数组中。
到目前为止,这是对我的代码的简化。
$myString = <p>a bunch of html</p> <a href="example.com/number1?ID=2014-89463">go</a>
$myMatches = $myString -match "\d{4}-\d{5}"
Write-Host $myMatches
$myMatches
是 return 整个字符串,但我想要的是 $myMatches
到 return 作为 2014-89463
(以及其余的任何比赛,还有更多)。
此外,$myString
实际上是一个字符串数组,每个都与上面列出的相似。
感谢您的帮助!
试试这个:
[regex]::Matches([string]$mystring,'(\d{4}-\d{5})') |
foreach {$_.groups[1].value}
将 $mystring
转换为 [string]
使其成为一个长字符串,每个元素之间用 space 分隔。然后 [regex]::Matches()
静态方法 returns 在字符串中找到所有匹配项。返回的匹配对象将为每个捕获的组都有一个组对象,.value
属性 是捕获的值。 foreach
循环只是遍历所有匹配项,并吐出捕获组 1 的值。