2016-07-26 10 views
2

In PowerShell sollen Strings in Hochkommas Sonderzeichen ignorieren. Aber warum muss ich Dollarzeichen entkommen, wenn ich -match verwende?Warum muss ich Dollarzeichen in einfache Anführungszeichen setzen?

$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 

Antwort

2

weil -match Regex Zeichenfolge übereinstimmen und $ ist regex Zeichen, das Sie entkommen müssen ...

Erwägen Sie die Verwendung [regex]::escape:

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