Jump to content

Regex und match - powershell


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (bearbeitet)

Da fehlt wohl das entscheidende Stück der Frage, oder?  Was willst Du denn erreichen? Wenn Du im Pattern eckige Klammern benutzt suchst Du nach einer ZeichenKlasse ... in Deinem Fall also nach der Existenz von klein s und klein e aber nicht zwingend in dieser Reihenfolge. Das Caret-Zeichen (^) ist normalerweise ein Anker und meint "Am Anfang des Suchstrings". Ob es innerhalb einer Charachterklasse die gleiche Bedeutung hat, weiß ich nicht  - bin aber eher skeptisch.

Wenn Du eigentlich nach einer ZeichenGruppe suchen wolltest, müsstest Du normale runde Klammern benutzen.

So klappt's wie erwartet:

PS:>'test' -match '(es)'
True

und so klappt es nicht ... aber auch erwartet ... ;-)

PS:>'test' -match '(^es)'
False

 

So ... ich hab nochmal recherchiert  ;-) ... das Caret-Zeichen am Anfang innerhalb einer Zeichenklasse [^...] kehrt die nachfolgenden Zeichen um. Also in Deinem zweiten Beispiel suchst Du Alles ausser s und e. Das heißt Du findest die beiden t's. Das kannst Du auch überprüfen, indem Du Dir die nach einem positiven "Match" automatisch befüllte Variable $Matches mal auf der Konsole ausgeben lässt.

Das Caret-Zeichen an beliebiger Stelle innerhalb einer Zeichenklasse [...^...], meint einfach ein literales Caret-Zeichen.

bearbeitet von BOfH_666
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...