Seite 1 von 1

Mit regex auf Zahlen und Komma prüfen

Verfasst: Sonntag 28. Februar 2021, 19:55
von ossi047
Hallo,
ich komm da nicht drauf. Ich möchte die Eingabe von Mengen (String wird später auf Zahl geändert) auf Zahlen prüfen und nach dem Komma sollten nur 2 Stellen möglich sein. Max. Zahlengröße 9 Stellen dann zwei Kommastellen. Ich lese da schon 2 Tage im Internet auf den regex Seiten herum komme aber nicht drauf wie ich das lösen könnte.
Ich hab da schon was gefunden, was da auf Zahlen prüft, aber nicht auf zwei Kommastellen.

txt = "123,45"
if re.match("\d+(\,\d\d)", txt):
print("true")
else:
print("false")


Nachsehendes habe ich auch schon gehabt aber das funktioniert auch nicht so wie vorhin beschrieben.
if re.match("^/[0-9]+$/{3,}", txt)

Könnt Ihr mir bitte da helfen. Danke im Voraus.

Re: Mit regex auf Zahlen und Komma prüfen

Verfasst: Sonntag 28. Februar 2021, 20:02
von Sirius3
Warum denkst Du, dass Dein (erster) regulärer Ausdruck nicht funktioniert?

Re: Mit regex auf Zahlen und Komma prüfen

Verfasst: Sonntag 28. Februar 2021, 23:59
von __blackjack__
Wahrscheinlich will man hier eher `fullmatch()` statt nur `match()`.

Re: Mit regex auf Zahlen und Komma prüfen

Verfasst: Montag 1. März 2021, 19:08
von ossi047
Mit 'fullmatch' funktionieren die zwei Kommastellen habe ich getestet.

txt = "123,45"
if re.fullmatch("\d+(\,\d\d)", txt):
print("true")
else:
print("false")

Die Eingrenzung auf zwei Nachkommastellen habe ich auch geschafft.
if re.fullmatch("\d+(\,\d\d){0,3}", txt):

Jetzt fehlt mir nur noch die max. 9 Stellen vor dem Komma. Bitte um weitere Hinweise. Danke vielmals.

Re: Mit regex auf Zahlen und Komma prüfen

Verfasst: Dienstag 2. März 2021, 17:23
von ossi047
Hallo Spezialisten,
ich glaube ich habe ein Lösung gefunden. So sollte es funktionieren:
txt = "0,30"
if re.fullmatch("^\d{1,7}(,\d{2}){1,3}",txt):
print("true")
else:
print("false")

Wenn ihr anderer Meinung seit bitte um Info und Danke für euer Interesse und Hilfe.

Re: Mit regex auf Zahlen und Komma prüfen

Verfasst: Dienstag 2. März 2021, 18:02
von narpfel
@ossi047: Probier deinen RegEx mal mit "1,23,45" aus.

Re: Mit regex auf Zahlen und Komma prüfen

Verfasst: Mittwoch 3. März 2021, 07:44
von Sirius3
Bei einem fullmatch braucht es kein ^. Warum bis zu drei Kommas?

Re: Mit regex auf Zahlen und Komma prüfen

Verfasst: Mittwoch 3. März 2021, 10:27
von ossi047
Hallo Sirius3 danke das ^ habe ich rausgenommen. Letzter Stand: re.fullmatch("\d{1,7}(,\d{2})",txt)
7 Stellen vor Komma, 2 Stellen nach Komma wird auf Zahlen geprüft.

Frage: Wie kann ich diese Kontrolleingaben für mehrere Entryfelder verwenden?
Mit bindall hab ichs versuchst habe ich nicht geschaft.