Alternierungskonstrukte
Die folgende Tabelle enthält eine Liste der Sonderzeichen, die einen regulären Ausdruck so modifizieren, dass er entweder/oder-Vergleiche zulässt.
Alternierungskonstrukt | Definition |
---|---|
| |
Entspricht einem der Begriffe, die durch den senkrechten Balken getrennt werden, z. B. |
(?( expression )yes|no) |
Entspricht dem "yes"-Teil, wenn der Ausdruck an dieser Stelle übereinstimmt. Andernfalls entspricht es dem "no"-Teil. Der "no"-Teil kann ausgelassen werden. Der Ausdruck kann ein beliebiger gültiger Unterausdruck sein, wird jedoch in eine Assertion mit einer Breite von Null umgewandelt, sodass diese Syntax gleichbedeutend ist mit (?(?=expression)yes|no). Beachten Sie Folgendes: Wenn der Ausdruck der Name einer benannten Gruppe oder einer Aufzeichnungsgruppennummer ist, wird das Alternierungskonstrukt als Aufzeichnungstest interpretiert (siehe Beschreibung in der nächsten Zeile dieser Tabelle). Um in diesen Fällen Verwirrung zu vermeiden, können Sie das innere (?=expression) explizit ausschreiben. |
(?( name )yes|no) |
Entspricht dem "yes"-Teil, wenn die benannte Aufzeichnung eine Übereinstimmung hat. Andernfalls entspricht es dem "no"-Teil. Der "no"-Teil kann ausgelassen werden. Wenn der gegebene Name nicht dem Namen oder der Nummer einer in diesem Ausdruck verwendeten Aufzeichnungsgruppe ist, wird das Alternierungskonstrukt als Ausdruckstest interpretiert (siehe Beschreibung in der vorherigen Zeile dieser Tabelle). |