PowerShell-Grundlagen: Erkennen, ob eine Zeichenfolge mit einem bestimmten Zeichen endet

Wussten Sie, dass Sie erkennen können, ob eine Zeichenfolge in einem bestimmten Zeichen endet oder in PowerShell in einem Zeichen beginnt? Thomas Rayner teilte zuvor auf CANITPRO.NET mit, wie dies mit regulären Ausdrücken oder einfach als Regex bekannt ist.



Original im Blog .

Betrachten Sie die folgenden Beispiele:

'something\' -match '\\$' #returns true 'something' -match '\\$' #returns false '\something' -match '^\\' #returns true 'something' -match '^\\' #returns false 

In den ersten beiden Beispielen überprüft das Skript die Zeichenfolgenenden, um festzustellen, ob sie mit einem Backslash enden. In den letzten beiden Beispielen überprüft das Skript die Zeichenfolge, um festzustellen, ob sie mit einer beginnt.

Das Regex-Muster, das für die ersten beiden übereinstimmt, ist \\ $. Was soll das heißen? Nun, der erste Teil \\ bedeutet "Backslash" (weil \ das Escape-Zeichen ist, entkommen wir im Grunde dem Escape-Zeichen. Der letzte Teil $ ist das Signal für das Ende der Zeile. Wir haben effektiv "alles" überhaupt, wo das Letzte auf der Linie ein Backslash ist “, genau das, wonach wir suchen.

In den zweiten beiden Beispielen habe ich gerade das \\ an den Anfang der Zeile verschoben und mit ^ begonnen, anstatt mit $ zu enden, da ^ das Signal für den Zeilenanfang ist.

Jetzt können Sie Folgendes tun:

 $dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\' 

Hier prüft das Skript, ob die Zeichenfolge "Bären" mit einem Backslash endet. Wenn dies nicht der Fall ist, füge ich einen hinzu.

Source: https://habr.com/ru/post/de439672/


All Articles