regEx funzt nicht wie ich will

Status
Nicht offen für weitere Antworten.

schuetzejanett

Bekanntes Mitglied
Hallo

wollte einen RegEx der beim textvergleich nur true zurückgibt, wenn vor dem Komma1 Zahl ist und nach dem Komma genau 2 Zahlen sind. Komma kann auch Punkt sein

Hier ist mein regEx dafür
Code:
\d+[\.\,]+\d{2}

Das Problem ist gebe ich z.b. vorm Komma mehr als 1 Zahl ein und der rest stimmt kommt true zurück sollte aber ja false sein
gebe ich nach dem , oder . mehr als 2 zahlen ein wird nach der zweiten zahl abgeschnitten und es kommt true raus?

Was ist an meinem regEx verkehrt, und was kann ich machen um nur gewollte Zahlen eingeben zu können oder besser gesagt speichern zu können?

Ist mein erster selbstgeschriebener regEx, deswegen freue ich mich auch über Hinweise wie man es anders und/oder besser machen kann
 
> Das Problem ist gebe ich z.b. vorm Komma mehr als 1 Zahl ein und der rest stimmt kommt true zurück sollte aber ja false sein

mehr als 1 Zahl vorne + Rest stimmt = alles stimmt insgesamt,
also ist Ergebnis true doch ok?

oder willst du genau einer Ziffer vorne? dann {1} statt + ??

bzw gar kein Modifer, das dürfte wie {1} zählen,
auch für die .,-Gruppe vielleicht lieber nur eins erlauben, im Moment gehen mehrere,
+ steht für 'mindestens eins'

> gebe ich nach dem , oder . mehr als 2 zahlen ein wird nach der zweiten zahl abgeschnitten und es kommt true raus?

true wird nur bei find() rauskommen, bei matches() dürftest du false erhalten,
dass abgeschnitten wird ist ganz normal, was erwartest du denn und warum sollte es so sein?
 
achso ok danke nein hatte es erstmal in nem regEx tester getestet und deswegen wusste ich halt nicht, das das mit dem find und matches aber da ich in meinem Programm mit matches teste passt es ja dann wieder und wegen dem Anfang stimmt da hätte ich eigentlich selber drauf kommen können

dank dir für die schnelle antwort
 
\d[\.\,]\d{2} also endgültig (hatte noch paar Erklärungen oben reineditiert)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben