.contains和-contains有什么区别?一个似乎区分大小写,而另一个则不然。
PS C:\WINDOWS\system32> ("jack", "john", "jill").contains("Jill")
False
PS C:\WINDOWS\system32> "jack", "john", "jill" -contains "Jill"
True
为什么会有这样的差异?
答案 0 :(得分:3)
-Contains
运算符将一个对象与一个集合进行比较。如果整个值作为一个项目存在于集合中,则返回true。它不区分大小写,并且不限于字符串。 -CContains
是区分大小写的版本。 .Contains()
方法是String类中的.NET方法。它将子字符串与字符串进行比较(默认情况下区分大小写)。
如果将数组转换为字符串,因为jill
将是较大字符串中的子字符串,因此可以操纵您的第一个示例以获得所需的结果。
("jack","jill","john" -join ",").Contains("jill")
True
有关使用-Contains
的详细信息和示例,请参见About_Comparison_Operators。
有关.Contains
方法的说明,请参见String.Contains Method。
答案 1 :(得分:0)
两者实际上有很大的不同。
$str = "abcde"
$str -contains "abcd"
False
$str.Contains("abcd")
True
为什么会有这种区别?
因为
-包含是根据MS的遏制运算符。告诉 是否收集参考 值包括一个测试值。始终返回布尔值。返回TRUE 仅当测试值与至少一个参考值完全匹配时,它必须是 include 元素之一(包含) 在数组中不是字符串元素的子字符串
Contains()方法是支持字符串对象的方法之一 子字符串,因此为什么在运行时得到True
$str.Contains("abcd")
希望有帮助。