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.