我执行下面的语句
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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
已在原文中回答,提问题请到《PowerShell交流中心》
谢谢