2.17 Abhängig von einer Bedingung eine von zwei Alternativen finden
Problem
Erstellen eines regulären Ausdrucks, der eine durch Kommata getrennte Liste mit den Worten eins
, zwei
und drei
findet. Jedes Wort kann beliebig häufig vorkommen, muss aber mindestens ein Mal vorhanden sein.
Lösung
\b(?:(?:(eins)|(zwei)|(drei))(?:,|\b)){3,}(?(1)|(?!))(?(2)|(?!))(?(3)|(?!))
Regex-Optionen: Keine
Regex-Varianten: .NET, JavaScript, PCRE, Perl, Python
Java und Ruby unterstützen keine bedingten Ausdrücke. Wenn Sie in Java oder Ruby programmieren (oder in einer anderen Sprache), können Sie den regulären Ausdruck ohne die Bedingungen nutzen und mit zusätzlichem Code prüfen, ob jede der drei einfangenden Gruppen etwas enthält.
\b(?:(?:(eins)|(zwei)|(drei))(?:,|\b)){3,} ...
Get Reguläre Ausdrücke Kochbuch now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.