如何让PowerShell的.Contains()方法忽略大小写并返回预期true?
在PowerShell中让字符串.Contains()忽略大小写的方法
针对你遇到的问题,有两种常用方法可以让Contains()忽略大小写:
方法一:使用StringComparison枚举(推荐,适合大规模循环)
直接调用.NET的String.Contains方法,传入[System.StringComparison]::OrdinalIgnoreCase参数指定不区分大小写的比较规则,这种方式不需要额外生成字符串实例,性能更优,适合大规模循环场景:
$a='aa0855' $b='AA0855 Sample' $b.Contains($a, [System.StringComparison]::OrdinalIgnoreCase)
执行后会返回预期的true。
方法二:统一转换为小写/大写后比较
将两个字符串都转换为小写(或大写),再调用Contains(),这种方式逻辑直观,但会生成新的字符串,大规模循环中可能影响性能:
$a='aa0855' $b='AA0855 Sample' $b.ToLower().Contains($a.ToLower())
同样能返回true。
内容的提问来源于stack exchange,提问作者TechSavvy8102
相关产品推荐
相关产品推荐

