就像当字符串包含反引号时运算符返回 false
Like operator returning false when string contains backtick
这听起来像是一个愚蠢的问题,但我不明白为什么反引号的存在无法与 Like 运算符进行比较。
例如:
> 'a' -Like 'a'
True # Seems logical to me
> '`' -Like '`'
False # Why does this return false ?
感谢您的帮助
反引号 (`
) 在 PowerShell 中用作通配符模式的转义字符,因此模式 `
仅被解释为空字符串。
像这样转义:
'`' -like '``'
请注意 `
也是 PowerShell 中可扩展字符串(即双引号字符串文字)的转义字符,在这种情况下,您必须双转义它:
'`' -like "````"
即使在 .net 中也不起作用。
$pattern = [WildcardPattern]::new('`')
$pattern.IsMatch('`')
False
这听起来像是一个愚蠢的问题,但我不明白为什么反引号的存在无法与 Like 运算符进行比较。
例如:
> 'a' -Like 'a'
True # Seems logical to me
> '`' -Like '`'
False # Why does this return false ?
感谢您的帮助
反引号 (`
) 在 PowerShell 中用作通配符模式的转义字符,因此模式 `
仅被解释为空字符串。
像这样转义:
'`' -like '``'
请注意 `
也是 PowerShell 中可扩展字符串(即双引号字符串文字)的转义字符,在这种情况下,您必须双转义它:
'`' -like "````"
即使在 .net 中也不起作用。
$pattern = [WildcardPattern]::new('`')
$pattern.IsMatch('`')
False