|
jsp-develop.de presents: Reguläre Ausdrücke |
| von Marc, 13.01.2002 14:21:28 |
|
Ein mächtiges Werkzeug zum Überprüfen von Zeichenketten, bzw. zum Suchen und Ersetzen von Zeichenketten bieten die regulären Ausdrücke. Die UNIX-User werden müde lächeln ebenso die Nutzer von Perl und PHP, aber endlich ist es bald soweit und auch JAVA wird ab dem JDK 1.4 mit diesem Werkzeug beglückt (java.util.regex). Hier ein kleines Beispiel zum Überprüfen der Syntax einer eMail-Adresse: boolean b = Pattern.matches("^[a-z0-9]+((\\.|!|_|\\+|\\-)[a-z0-9]+)*@([a-z0-9]+(\\.|\\-))+[a-z]{2,}$", "name@host.de"); Es folgt eine kleine Übersicht über die grundsätzlichen Elemente der regulären Ausdrücke und ein paar kleine Beispiele. Am besten dann einfach mal mit einem kleinen Script oder Java-Programm ausprobieren. Character-Klassen [abc] Zeichen a, b oder c [^abc] Alle Zeichen ausser a, b oder c [a-zA-Z] Alle Klein- und Grossbuchstaben Vordefinierte Character-Klassen \d Eine Zahl [0-9] \D Keine Zahl [^0-9] \s Leerzeichen [ \t\n\x0B\f\r] \S Kein Leerzeichen [^\s] \w Ein Buchstabe [a-zA-Z_0-9] \W Kein Buchstabe [^\w] Metazeichen \ Das folgende Zeiche Zeichen verliert seine Sonderfunktion . Beliebiges Zeichen | Alternative () Gruppierungen [] Zeichenbereich Quantifikatoren * 0 bis n-mal + mindestens ein bis n-mal ? optional ( 0 bis n-mal) {n} genau n-mal {n,} mindestens n-mal {n,m} zwischen n- und m-mal Positionierung ^ Anfang der Zeile $ Ende der Zeile \b Wortanfang \B Wortende \A Anfang einer Zeichenkette \Z Ende der Zeichenkette Und nun zur grauen Theorie ein paar Beispiele: ^j.*e$ muss mit j beginnen und mit e aufhören (jsp-.develop.de) ^[a-z0-9]+ beginnt mit beliebig vielen Kleinbuchsteben und Zahlen [+-]?[0-9]+[,.][0-9]+ Zahl mit Dezimaltrennzeichen (z.B. -2635,98) [a-z]{2,}$ mindestens zwei Kleinbuchstaben am Ende Hier noch ein cooles Tool zum rumspielen mit regulären Ausdrücken: http://weitz.de/regex-coach/ Mehr zum Thema reguläre Ausdrücke: http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm http://www.heise.de/ix/artikel/1998/11/178/ http://www.oreilly.de/catalog/regexger/ |
|
URL dieses Beitrags: http://www.jsp-develop.de/forumbeitrag/view/663/ |