Hallo Joachim Am 16.07.20 um 13:22 schrieb Joachim H.:
Moin,
ich quäle mich im Moment mit regulären Ausrücken rum.
Vielleicht kann mir hier jemand helfen.
Ich muss einen Ausdruck der folgenden Form auseinander nehmen:
"(x,y)(a,b)(c,d)..."
x, y, etc sind Fließkommazahlen, sowas wie 1, 2.3, 1e-4, -3.14159
in einem ersten Schritt sollen alle Klammern gefunden werden, also "(x,y)" "(a,b)" ...
Daran scheitere ich.
Mit "(\(.*\))+" z.B findet er nur den gesamten String und nicht die einzelnen Klammern.
Reguläre Ausdrücke sind grundsätzlich erst einmal gierig und versuchen eine möglichst lange Übereinstimmung zu finden. Du könntest also entweder die schließende Klammer ausschließen oder den Ausdruck als "nicht gierig" zu definieren. Ob alle Implementierungen der Regulären Ausdrücke auch ein "nicht gierig" enthalten, entzieht sich meiner Kenntnis. Daher hier erst einmal der einfache Weg mit dem Ausschluss. Statt des Punktes (jedes Zeichen) definierst Du eine Zeichenmenge, die genau die schließende Klammer verbietet [^)]. Das ganze sieht dann so aus. \([^)]*\) Damit findest Du dann aber auch nur die erste Klammer! Wenn Du dich näher mit dem Thema beschäftigen willst ist ein guter Einstiegspunkt https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck Viel Erfolg Mark -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org