Ein Beispiel wir wollen prüfen, ob ein String ausschließlich die Zahlen "0-9" enthält.
//Prüfe diverse String Literale ob Sie nur die Ziffern 0-9 enthalten. System.out.println("145T".matches("[0-9]*")); //ergibt False System.out.println("145".matches("[0-9]*"));//ergibt true
Wenn wir uns das Regex genauer anschauen gibt der Bereich in den eckigen Klammern den Bereich an, der erlaubt ist und der * sagt, dass eine beliebige Anzahl Zeichen aus der eckigen Klammer erlaut sind.
Um beispielsweise auf eine Kundennummer zu prüfen, die 5 stellig numerisch sein muss, kann man folgendermaßen vorgehen .
// Prüfen ob 5 stellig numerisch System.out.println("1452434".matches("[0-9]{5}")); // ergibt False da zu lange System.out.println("RALFP".matches("[0-9]{5}")); // ergibt False da nicht numerisch System.out.println("12345".matches("[0-9]{5}")); // ergibt true
Natürlich kann man auch viel komplexere Gültigkeitsprüfungen mit .matches() und Regular Expression durchführen.
z.B. Prüfung auf eine gültige IP Adresse
// Prüfen eines String ob er eine gültige IP Adresse ist. System.out.println("172.16.2.3" .matches("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")); // ergibt true, da es eine gültige IP Adresse ist System.out.println("256.256.256.256" .matches("(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")); // ergibt false, da keine gültige IP Adresse.Alles in allem sieht man, dass .matches und Regular Expressions wirklich eine sehr mächtige Kombination sind. Und das schöne an Regular Expressions ist, dass es sehr viele fix fertige Beispiele zur Prüfung auf diversen Beispielwebseiten gibt. Das heißt man muss sich nicht alles selber zusammenbauen, sondern kann auf erprobte Regular Expressions zurückgreifen.
zum Beispiel
http://www.regular-expressions.info/examples.html
http://www.mkyong.com/regular-expressions/10-java-regular-expression-examples-you-should-know/
http://regexlib.com/DisplayPatterns.aspx
und viele mehr lassen sich über google finden
No comments:
Post a Comment