Für die Rechnungsnummer:
* der Prüf-RegEx geht auf den kompletten String, von Anfang bis Ende (drum ^ und $ drumrum)
* der der UngültigeZeichen-RegEx geht auf "ein" ungültiges Zeichen, oder eine Gruppe von Zeichen (wenn + , aber ihne ^ und $)
* * zum Löschen oder ersetzen dieser Zeichen (ersetzen durch Leerstring oder ein gülties Ersatzzeichen, wie z.B. [delphi]-[delphi/])
Das geht hier, da die Prüfung an jeder Position die selben Zeichen erlaubt.
TRegEx.Repleace:
* erstmal überlegen, ob du Dieses als "Funktion" (Klassenmethode) ausführen willst, oder als Methode eines Objekts.
* Wenn man es oft und schnell das Gleiche suchen oder ersetzen will, dann ist es mit dem Objekt eventuell optimaler,
da der RegEx selbst nicht jedesmal neu initialisiert werden muß. (ich nutzte hier z.B. 3 RegEx-Instanzen, im OnCellPaint eines Grids, also sehr oft und schon etwas "zeitkrittisch")
Zitat:
Wie wandle ich denn so etwas um:
Was willst du da denn umwandeln, bzw. in was?
Bei so Kompliziertem ist es nicht so einfach eine Gegenprüfung zu basteln.
Den RegEx selbst prüfen geht natürlich, um zu sagen "geht oder geht nicht", also alles zusammen.
Rauszufilten was nicht geht, wird schwerer.
Man könnte es so umbauen, dass die Teile optional aufbauend und nach hinten offen sind, dann liese sich zumindestens sagen "hier, bzw. ab hier geht es nicht".