@@Nico R.
Um zu erreichen, dass vorne maximal drei Ziffern stehen dürfen und - wenn ein Punkt oder Komma gesetzt wurde - maximal zwei Ziffern folgen dürfen
„Wenn“ ist das wichtige Wort hier.
Übrigens schriebst du im OP was von bis zu drei Ziffern nach dem Komma. Was denn nun, zwei oder drei?
hab ich folgendes probiert, was natüüüürlich nicht funktioniert hat:
^([0-9]{0,3}(?:(?=[.|,]{1})[0-9]{1,2}|(?![.|,])))$
Klammern ist schon mal richtig – wegen dem „Wenn“.
Lookahead assertions brauchst du aber nicht. Dein Problem lässt sich mit einem regulären Ausdruck lösen (einer echten Teilmenge von RegExp).[1]
Du willst 0–3 Ziffern (oder doch 1–3?) [0-9]{0,3}
gefolgt von einer optionalen (?
) Gruppe (Klammer!) bestehend aus einem Dezimaltrennzeichen gefolgt von einer oder zwei (drei?) Ziffern (?:[,.][0-9]{1,2})?
.
Das heißt, entweder die ganze Gruppe (Dezimaltrennzeichen und Ziffern danach) tritt auf oder nichts davon. Das haste das „Wenn“.
(?=[.|,]{1})
{1}
ist überflüssig; A{1} ist dasselbe wie A.
Bin ich auf der richtigen Spur oder ist das kompletter Quatsch?
Es ist viel zu kompliziert. Für einfach s.o.
🖖 Живіть довго і процвітайте
„Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
— @Grantscheam auf Twitter