Lemmy Danger: Validierung mit Regex endet bei einem Mismatch in Endlosschleife

Beitrag lesen

Hallo Uwe!

Zunächst einmal vielen Dank für Deine ausführlichen Erläuterungen und für die Mühe, das Problem nachzuvollziehen. Ich habe das von Dir vorgeschlagene Pattern einmal ausprobiert, leider aber mit dem gleichen Ergebnis: Wenn der Text valide ist, funktioniert der Match reibungslos. Baue ich jedoch an irgendeiner Stelle ein Sonderzeichen ein (z.B. ein $ im Fließtext), hängt sich meine Anwendung wieder auf.

Kannst Du das in Perl auch beobachten? Ich verwende z.B. den Text

Die aktuellste $[NAME]-Version ist $[VERSION].\r\nDie aktuellste $[NAME]-Version ist $[VERSION].

Das Pattern funktioniert hier wunderbar. Wenn ich nun aber

Die aktuel$lste $[NAME]-Version ist $[VERSION].\r\nDie aktuellste $[NAME]-Version ist $[VERSION].

prüfe, komme ich wieder in die Endlosschleife. Ich verstehe das einfach nicht. Dein Pattern müsste doch eigentlich nach "Die aktuel" ein ungültiges Zeichen feststellen und abbrechen...

Als Workaround habe ich schon überlegt, die beiden fixen Strings vor der Prüfung durch Platzhalter à la ".V.E.R.S.I.O.N." zu ersetzen und danach wieder einzufügen, aber das wäre irgendwie unbefriedigend... schließlich sollte es m.E. doch auch per Regex gehen.

Der Java-Code ist denkbar einfach; ich denke nicht, dass es daran liegen könnte, denn es handelt sich hierbei um eine statische Methode der Klasse "Pattern" aus der Java-Core-API:

boolean match = Pattern.matches(this.getRegex(), this.getInput());

Hast Du vielleicht noch eine Idee, was ich sonst versuchen könnte?

Viele Grüße,
Oliver

PS: Danke auch für Deine drei Anmerkungen... Umlaute und ß hätte ich glatt vergessen.

--
Unter 1000 Luegen klingt eine Wahrheit wie ein falscher Ton.