Powershell 为什么我需要在单引号中键入美元符号?

Powershell 为什么我需要在单引号中键入美元符号?,powershell,Powershell,在PowerShell中,单引号中的字符串应该忽略其中的特殊字符。但是如果我使用的是-match,为什么我需要避开美元符号呢 $Src = '$SOMETHING$' # Good $Src # Good, returns string as is $Src -match '$SOMETHING$' # Returns false if $ is not escaped $Src -match '\$SOMETHING\$'

在PowerShell中,单引号中的字符串应该忽略其中的特殊字符。但是如果我使用的是
-match
,为什么我需要避开美元符号呢

$Src = '$SOMETHING$'         # Good
$Src                         # Good, returns string as is
$Src -match '$SOMETHING$'    # Returns false if $ is not escaped
$Src -match '\$SOMETHING\$'  # Returns true, $ is escaped

因为
-match
使用正则表达式来匹配字符串,
$
是需要转义的正则表达式字符

考虑使用
[regex]::escape

$Src = '$SOMETHING$'; #Good
$Src -match [regex]::escape('$SOMETHING$')