PowerShell -Match 操作符为什么只匹配第一次 2


我执行下面的语句

PS C:\> ‘abcabc’ -match ‘ab’
True
PS C:\> $Matches

Name Value
—- —–
0 ab

$Matches里为什么只有一个结果,不应该是两个’ab’么?

 

荔非苔注:

PowerShell中的-Match 操作符本来设计的就是只匹配第一次,但是你可能会有疑问,既然如此,为什么自动变量叫$Matches不叫$Match,那是因为在一些特定条件下正在表达式匹配【组】时才会返回$Matches多个结果,可以参考:正则表达式Group的使用

如果想使用普通的多个结果匹配,可以直接调用.NET的方法:

PS> [regex]::Matches('abcabc','ab')


Groups   : {ab}
Success  : True
Captures : {ab}
Index    : 0
Length   : 2
Value    : ab

Groups   : {ab}
Success  : True
Captures : {ab}
Index    : 3
Length   : 2
Value    : ab

 

本文链接: https://www.pstips.net/match.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

2 条评论 “PowerShell -Match 操作符为什么只匹配第一次