就像运算符在字符串包含反引号时返回false

时间:2019-10-04 14:43:51

标签: powershell string-comparison powershell-5.0

这听起来像是一个愚蠢的问题,但我不明白为什么反引号字符的存在无法与Like运算符进行比较。

例如:

> 'a' -Like 'a'
True # Seems logical to me

> '`' -Like '`'
False # Why does this return false ?

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

反引号(`)在PowerShell中用作通配符模式的转义字符,因此模式`被解释为只是一个空字符串。

像这样逃避它:

'`' -like '``'

请注意,`也是 在PowerShell中可扩展字符串(即双引号字符串文字)的转义字符,在这种情况下,您必须 double-逃脱它:

'`' -like "````"

答案 1 :(得分:0)

即使在.net中也不起作用。

$pattern = [WildcardPattern]::new('`')
$pattern.IsMatch('`')

False