ich möchte folgendes machen:
BOOres= IPText.matches("[0123456789]*.[0123456789]*.[0123456789]*.[0123456789]*");
ich will damit überprüfen ob ein string in der form „123.456.789.123“ ist. (müssen nicht umbedingt 3er pakete sein kann auch mehr oder weniger sein).
mit java.util.regex.Pattern.DOT_ALL setzt man ob der . als beliebige zeichenfolge gewertet werden soll, standartmäßig ist das eingeschalten. ich brauch aber den punkt als punkt in dem RexEx STring und nicht als beliebige zeichenfolge.
Reine Vermutung:
Vermutlich musst du den Punkt escapen,
also . muss in den String rein, da \ aber in Java schon selbst der Escape Character ist, muss es vermutlich \. heißen
Sollte gehen, wobei du mit nem regulären Ausdruck nie allein hinkommen wirst, wenn die IP Adresse auch wirklich sinnvoll sein soll (z.b. nicht 999.999.999.999)
Sollte gehen, wobei du mit nem regulären Ausdruck nie allein
hinkommen wirst, wenn die IP Adresse auch wirklich sinnvoll
sein soll (z.b. nicht 999.999.999.999)
passt wohl noch nicht ganz, da du bei 3-stelligen Zahlen für die letzten beiden Ziffern nur Werte bis 5 zulässt (199.199.199.199 wäre aber eigentlich OK), aber ich denke prinzipiell hast du schon recht, man bekommts mit regulären Ausdrücken schon hin, es fehlen halt noch ein Paar ODER-Verbindungen:
passt wohl noch nicht ganz, da du bei 3-stelligen Zahlen für
die letzten beiden Ziffern nur Werte bis 5 zulässt
(199.199.199.199 wäre aber eigentlich OK), aber ich denke
prinzipiell hast du schon recht, man bekommts mit regulären
Ausdrücken schon hin, es fehlen halt noch ein Paar
ODER-Verbindungen: