Hallo,
in einem (einzeiligen) beliebigen String möchte ich immer nur das erste Vorkommen eines Musters (einen Doppelpunkt) erhalten und weiterverarbeiten, es kommt mindestens 1 Mal und maximal zwei bis n Mal vor.
Denkbare Strings sind:
usw.
In der RegEx-Endfassung soll noch eine Muster-Alternative per "|" hinzukommen, so dass entweder der (erste!) Doppelpunkt oder ein anderes (Sonder-)Zeichen gematcht wird.
Hat jemand eine Idee? :denk:
Edit:
Also, es geht - wenn auch, wie ich finde, umständlich:
%SetPattRegExp='(?U)(.+)\s*:(?= )\s(?-U)(.+)'%-
%RegExpBlindMatch='Foo Bar: Baz: Quux'%-
%SubPatt='2'
So bekäme ich meinen ersten Doppelpunkt, die SubPattern 1 und 2 enthalten "Foo Bar", bzw. "Baz: Quux". (Mit
ließe sich die Muster-Alternative realisieren.)
In einer vernünftigen Skriptsprache ließe sich sowas natürlich eleganter schreiben (via Attribut für Regex-Funktion), kein Vergleich zu Ritlabs' Makro-Gehunze.