Regex (Wert)UND(andererWert) verketten
Hallo zusammen,
ich hoffe der Titel ist einigermaßen gewählt .
Ich habe eine Frage zum REGEX verhalten. Ich durchsuche folgenden String:
Ich möchte nun in einer if-Abfrage prüfen, ob ein Match true ist:
Der Code matched immer, da er alles matched, eine ODER Verknüpfung bekomme ich ja mit dem Pipe hin, aber die matched dann ja auch, wenn nur ein "data" vorhanden ist.Wie sieht es mit einer und Verknüpfung aus? Gibt es das überhaupt?
Match darf nur true sein, wenn beide "data´s" vorhanden sind.
Sonst bastel ich das aus 2 if-Abfragen, aber mir wäre es lieber kompakter .
Ich hoffe mein Anliegen war verstänlich vorgetragen.
Liebe Grüße,
Sascha
ich hoffe der Titel ist einigermaßen gewählt .
Ich habe eine Frage zum REGEX verhalten. Ich durchsuche folgenden String:
:data
Hier ist ein Karton
Dong!
data:
Ich möchte nun in einer if-Abfrage prüfen, ob ein Match true ist:
if ($CheckedString -Match "(data:)?(:data)?" -eq $true)...
Der Code matched immer, da er alles matched, eine ODER Verknüpfung bekomme ich ja mit dem Pipe hin, aber die matched dann ja auch, wenn nur ein "data" vorhanden ist.Wie sieht es mit einer und Verknüpfung aus? Gibt es das überhaupt?
Match darf nur true sein, wenn beide "data´s" vorhanden sind.
Sonst bastel ich das aus 2 if-Abfragen, aber mir wäre es lieber kompakter .
Ich hoffe mein Anliegen war verstänlich vorgetragen.
Liebe Grüße,
Sascha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 649662
Url: https://administrator.de/contentid/649662
Ausgedruckt am: 25.11.2024 um 10:11 Uhr
3 Kommentare
Neuester Kommentar
Match darf nur true sein, wenn beide "data´s" vorhanden sind.
Da gibt's mehrere Varianten z.B. einfach mit -and Operator verketten:if($checkedString -match ':data' -and $checkedString -match 'data:'){
"OK"
}
if($checkedString -match '(?s)(:data.*data:|data:.*:data))'){
"OK"
}
Sonst bastel ich das aus 2 if-Abfragen
Nee das ist nun wirklich nicht nötig. Solltest du vielleicht mal in einer ruhigen Minute lesen about_Logical_OperatorsZitat von @TheUnreal:
Super, vielen Dank für die Hilfe. Auf die Gruppe mit dem Sonderzeichen am Anfang wäre ich alleine nicht gekommen.
Das ist effektiv keine Gruppe sondern es ist ein spezieller Regex Konstrukt das besagt das der Punkt im Regex auch Zeilenumbrüche matchen soll (s) )Super, vielen Dank für die Hilfe. Auf die Gruppe mit dem Sonderzeichen am Anfang wäre ich alleine nicht gekommen.
z.B. besagt
(?ism)
das insensitiv (i) gematcht werden soll, zusätzlich der Punkt auch Zeilenumbrüche matcht (s) und das (m) besagt das ^und $ im Regex Zeilenanfang und Zeilenende jeder Zeile matchen (multiline match) anstatt nur Anfang oder Ende des Strings.