Regular Expression für Zinssatz
Verfasst: Donnerstag 8. April 2004, 11:13
Hallo zusammen!
Ich hab mal eine Frage bezüglich RE... Und zwar möchte ich selbige in meinem Programm benutzen, um einen Zinssatz zu überprüfen. Dieser Zinssatz kann wie folgt aufgebaut sein:
- minimal eine und maximal 2 numerische Vorkommastellen
- anschließend kann ein Punkt kommen, auf den aber auf jeden Fall noch eine Zahl folgen muss, wenn er gültig sein soll
- wenn . und Zahl vorhanden waren, dann können noch 2 Zahlen kommen
Um das jetzt zu realisieren, habe ich das ganze wie folgt gemacht:
Leider funktioniert das aber irgendwie gar nicht
Seltsamerweise werden dabei alle Strings als korrekt angesehen, bei denen nur Zahlen und ggf. der Punkt vorkommen. Also auch "2." ist gültig. Oder auch "414309842". Finde ich alles sehr komisch und kann ich mir ehrlich gesagt nicht erklären...
Kann mir da vielleicht jemand von euch weiterhelfen und mir sagen, wie ich die RE aufbauen muss, damit nur Zinssätze als korrekt angesehen werden, die dem oben genannten Muster entsprechen?
Wäre sehr nett, danke schon mal im Voraus
MfG
MightyJ
P.S. Bin noch ein ziemlicher Neuling auf dem Gebiet der RE...
Ich hab mal eine Frage bezüglich RE... Und zwar möchte ich selbige in meinem Programm benutzen, um einen Zinssatz zu überprüfen. Dieser Zinssatz kann wie folgt aufgebaut sein:
- minimal eine und maximal 2 numerische Vorkommastellen
- anschließend kann ein Punkt kommen, auf den aber auf jeden Fall noch eine Zahl folgen muss, wenn er gültig sein soll
- wenn . und Zahl vorhanden waren, dann können noch 2 Zahlen kommen
Um das jetzt zu realisieren, habe ich das ganze wie folgt gemacht:
Code: Alles auswählen
_zinssatz = re.compile(r"[0-9]{1,2}?((\.(?=[0-9]))?[0-9]{0,2})")

Kann mir da vielleicht jemand von euch weiterhelfen und mir sagen, wie ich die RE aufbauen muss, damit nur Zinssätze als korrekt angesehen werden, die dem oben genannten Muster entsprechen?
Wäre sehr nett, danke schon mal im Voraus

MfG
MightyJ
P.S. Bin noch ein ziemlicher Neuling auf dem Gebiet der RE...