当前位置: 首页 > 知识库问答 >
问题:

PowerShell和-contains运算符

冯枫
2023-03-14

考虑以下代码段:

"12-18" -Contains "-"

您可能认为它的计算结果为true,但事实并非如此。它的计算结果将改为false。我不知道为什么会这样,但确实如此。

为了避免这种情况,您可以使用以下内容:

"12-18".Contains("-")

现在表达式的计算结果将为true。

为什么第一个代码段的行为是这样的?是否有什么特殊的东西不能很好地处理包含的内容?文档中没有提到这方面的任何内容。

共有3个答案

乐正涵意
2023-03-14

您可以使用

"12-18" -like "*-*"

拆分for包含

"12-18" -split "" -contains "-"
邹缪文
2023-03-14

-包含实际上是一个集合运算符。如果集合包含对象,则为真。它不限于字符串。

-match-imatch是正则表达式字符串匹配器,用于设置用于捕获的自动变量

like、ilike都是类似SQL的匹配器。

濮阳赞
2023-03-14

操作符Contains不进行子字符串比较,匹配必须在一个完整的字符串上,并用于搜索集合。

从您链接到的文档中:

-包含说明:包含运算符。告诉参考值的集合是否包括单个测试值。

在您提供的示例中,您正在使用仅包含一个字符串项的集合。

如果阅读链接到的文档,您将看到一个演示此行为的示例:

例子:

PS C:\> "abc", "def" -Contains "def"
True

PS C:\> "Windows", "PowerShell" -Contains "Shell"
False  #Not an exact match

我想你想要的是-Match运算符:

"12-18" -Match "-"

返回True。

重要提示:正如注释和链接的留档中所指出的,应该注意-Match运算符使用正则表达式来执行文本匹配。

 类似资料:
  • 本文向大家介绍在PowerShell中,–Match,-Like和–Contains运算符有什么区别?,包括了在PowerShell中,–Match,-Like和–Contains运算符有什么区别?的使用技巧和注意事项,需要的朋友参考一下 上面提到的所有上述3个运算符(Match, Like, Contains)都是PowerShell中的比较运算符。Match和Like运算符几乎相似,唯一的区别

  • 据我所知,PowerShell似乎没有一个针对所谓三元运算符的内置表达式。 例如,在支持三元运算符的C语言中,我可以编写如下内容: 如果PowerShell中并不存在这种情况,那么实现相同结果的最佳方法(即易于阅读和维护)是什么呢?

  • 本文向大家介绍Windows Powershell 进行数学运算,包括了Windows Powershell 进行数学运算的使用技巧和注意事项,需要的朋友参考一下 PowerShell支持如下算术运算符: 运算符 描述 例子 结果 + 把两个数值相加 6+2  8 - 把两个数值相减 6-2  4 - 将数值转换为对应的负值 -2+6 4 * 把两个数值相乘  6*2 12 / 把两个数值相除 6

  • 我尝试获取标题中包含一些单词的链接,但不包含一些单词,我使用以下代码,但它表示这不是有效的XPath表达式。 请在此处找到我的代码: 任何帮助将不胜感激!

  • 是否有人理解对每个PowerShell的比较运算符进行区分大小写和不区分大小写版本背后的原因?为什么要使默认值不区分大小写? 例如,以-eq和-ceq为例。这些运算符用于比较所有类型,而不仅仅是字符串。那么,0-CEQ1意味着什么呢?如何区分大小写比较两个整数?

  • 本文向大家介绍如何使用PowerShell作为计算器?或如何使用PowerShell进行算术运算?,包括了如何使用PowerShell作为计算器?或如何使用PowerShell进行算术运算?的使用技巧和注意事项,需要的朋友参考一下 您可以使用PowerShell控制台来执行算术运算,就像计算器一样。 要进行加法运算, 输出-5 对于复杂的附加操作,它也太快了。 输出-20543578 浮号运算 输