Kackfohgel.: Reguläre Ausdrücke

Beitrag lesen

Hallo,

ich habe in einem Programm die Möglichkeit mit regulären Ausdrücken (PERL) bestimmte Datensätze auszufiltern. Ich kann programmbedingt ausschließlich diese regulären Ausdrücke verwenden, weitere Bedingungen sind nicht möglich.

Nun zu meinem Problem, ich habe bspw. folgende Daten:

"Alle Daten", "n.v.", "123.40", "123.45.6", "123.50", "987.50" "987.6.40", 123.456.789.0"

Zunächst war die Anforderung, alle Daten zu liefern, die Ziffern enthalten. Mit [0-9] konnte ich diese Hürde noch gut alleine meistern.

Nun ist eine Anforderung, zusätzlich die Strings auszufiltern (also nicht! zurückzuliefern), die ein ".50" enthalten. Da ich programmbedingt nur reguläre Ausdrücke verwenden kann und keine weiteren Bedingungen einfügen kann, bleibt mir wohl nur eine Positivbeschreibung. Hiermit klappt es:

.1|.2|.3|.4|.6|.7|.8|.9|.0

Abgesehen davon, dass ich das jetzt schon relativ umständlich finde, würden derzeit ja auch alle ".5" ausgefiltert, was bei den derzeitigen Daten noch unproblematisch ist, da nicht vorhanden, aber zukünftig nicht auszuschließen ist. Also müsste ich das schon wie folgt erweitern (noch nicht getestet):

.1|.2|.3|.4|.51|.52|.53|.54|.55|.56|.57|.58|.59|.6|.7|.8.9|.0

Weiß jemand eine bessere/kürzere Lösung? Eine Umkehrung/Negation ist ohne weitere Bedingung nicht möglich oder? Also sowas wie ! für ungleich ala "!.50"?

Freundliche Grüße
Kackfohgel