Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ist ein Regulärer Ausdruck korrekt (https://www.delphipraxis.net/149983-ist-ein-regulaerer-ausdruck-korrekt.html)

martinf16 4. Apr 2010 03:35


Ist ein Regulärer Ausdruck korrekt
 
Ich stelle mir gerade die Frage, wie man einen Regulären Ausdruck auf Korrektheit testen kann. Gibt es hier vielleicht schon vorhandene Funktionen?

Das Problem dabei ist, dass es ja sehr viele Möglichkeiten gibt und es beispielsweise nicht ausreicht alle offenen und geschlossenen Klammern zu zählen, da auch der Ausdruck [[] möglich wäre und das hier ja nicht stimmt.

Es geht darum dass bevor der vom Nutzer eingegebene Ausdruck verwendet werden soll eine Validierung durchgeführt wird, um eine Fehlermeldung zu vermeiden. Das Problem bei meinen Suchen im Netz war, dass ich immer nur auf Seiten kam wo beispielsweise eine E-Mail Adresse überprüft wurde, nicht aber der Ausdruck selber.

Vielen Dank!

Medium 4. Apr 2010 05:38

Re: Ist ein Regulärer Ausdruck korrekt
 
Zitat:

As already said, you cannot describe regular expressions with a regular expression due to their recursive nature. You'll need a context free grammar for that.
Quelle

Für Spezialfälle kann man das wohl anstellen, jedoch nicht so generell wie du hier fragst. Generell heisst der Tipp meist: Versuch den Parser die Regexp schlucken zu lassen, rülpst er einen Fehler aus, war wohl ein Fehler drin. Das ist dann auch das Stichwort: Zum generellen Validieren braucht's eben schon einen richtigen Parser, und dann sind da auch noch die 100millionen Varianten von Regexps die es so gibt. Daher würd es tatächlich am Meisten Sinn machen, genau den Parser den du als Blackbox verwendest einfach zu füttern, weil der ist es ja, der es verstehen soll.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz