Powershell 为什么我需要在单引号中键入美元符号?
在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\$'
-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$')