2016-07-26 62 views
2

在单引号中的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 

回答

2

因为-match使用正则表达式来匹配你的字符串,$是,你需要逃脱正则表达式字符...

考虑使用[regex]::escape

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