在PowerShell中,–Match,-Like和–Contains运算符有什么区别?
上面提到的所有上述3个运算符(Match,Like,Contains)都是PowerShell中的比较运算符。Match和Like运算符几乎相似,唯一的区别是通配符和Contains运算符完全不同。我们将看到示例并了解它们如何工作。
示例
PS C:\WINDOWS\system32> "This is a PowerShell String" -Match "PowerShell" True PS C:\WINDOWS\system32> "This is a PowerShell String" -Like "PowerShell" False PS C:\WINDOWS\system32> "This is a PowerShell String" -Contains "PowerShell" False
如果您看到上面示例的输出,则仅对于Match语句,结果为True,原因是当您匹配字符串中的关键字时,它将检查关键字是否存在。不管您使用的关键字是单个关键字还是关联词。以下语句也是正确的。
PS C:\WINDOWS\system32> "This is a PowerShell String" -Match "Shell" True
但是通配符(*)对Match运算符没有帮助。
PS C:\WINDOWS\system32> "This is a PowerShell String" -Match "*PowerShell*"
parsing "*PowerShell*" - Quantifier {x,y} following nothing.
At line:1 char:1
+ "This is a PowerShell String" -Match "*PowerShell*"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException因此,Match条件不会评估正则表达式运算符。相反,Like运算符与通配符(*)一起使用。
PS C:\WINDOWS\system32> "This is a PowerShell String" -like "*PowerShell*" True
因此,通配符在Match和Like运算符之间起主要作用。我们可以使用Contains运算符检查通配符(*)的使用。
PS C:\WINDOWS\system32> "This is a PowerShell String" -contains "*PowerShell*" False
Contains运算符也不能与通配符(*)一起使用。它是与Match和Like完全不同的运算符,并且可以处理对象的集合(Array)。
PS C:\WINDOWS\system32> "Apple","Dog","Carrot","Cat" -contains "dog" True
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短