Hi
Ich habe eigentlich eine einfache Aufgebenstellung, aber leider kenne ich mich mit RegExp nicht so gut aus, deshalb:
[0-9]{1,3}(.[0-9]{0,2})?
Diese RegExp habe ich mithilfe des RE-Testers von jEdit geschrieben, in dem Sie auch wunderbar funktioniert. Sie soll ermitteln, ob eine Preisangabe korrekt ist, d.h. drei Stellen vor dem Komma, zwei dahinter, wenn kein Komma, dann ist es auch gut.
Match: 1.23 12.34 123.45
1.2 12.3 123.4
1. 12. 123.
1 12 123
Der String, der ein Match gibt, obwohl er es nicht sollte ist ".1" und ".12" und ich weiß nicht wesshalb!
ganz einfach: der erste Teil des RegEx matcht auf die 1 oder die 12 (erlaubt sind 1 bis 3 Ziffern, die werden gefunden). Es wird ja nicht festgelegt, daß es auf die Ziffern am Stringanfang matchen soll.
Du mußt den Regex am Stringanfang und Ende verankern, so daß er den ganzen String matchen muß.
^ macht das für den Anfang, $ für das Ende, also zusammen:
[1]{1,3}(.[0-9]{0,2})?$
Andreas
0-9 ↩︎