5. Februar 2012  
  Suche:
 
  Basics
  Code-Galerie
  Forum
  FAQ
  Tipps & Tricks
  Literatur
  Knowledge Base
  Workshops
  JSP-Hosting
  JSP-Engines
  Jobbörse
  Links
  JSP-Sites
  Newsletter
  JSP-Test
  Impressum
  Username:
  
  Passwort:
  
  

  Jetzt registrieren
  Warum registrieren?

  Valid HTML 4.01!
  Valid CSS!

Reguläre Ausdrücke

von Marc,  13.01.2002 14:21:28  (8 votes)  [vote]
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/
[Druckansicht]    [Beitrag versenden]
<< zurück  Kommentieren

Kommentare zu diesem Eintrag
Re: Reguläre Ausdrücke
janus, 02.06.2005 02:10:46

Schick, aber kann man überall lesen.
Wo sind die Beispiele in JAVA? Genau das ist das
Problem. In perl und php mach ich die das noch
mit 1,5 Promille.


<< zurück


Hinweis: Auf dieser Seite liegen Links zu anderen Seiten im Internet. Für alle diese Links gilt: Wir betonen ausdrücklich, daß wir keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten haben. Deshalb distanzieren wir uns hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf dieser Homepage und machen uns ihre Inhalte nicht zueigen. Diese Erklärung gilt für alle auf unserer Homepage angebrachten Links

Redaktion/Betreiber von JSP-Develop übernehmen keinerlei Gewährleistung und Verantwortung für die Richtig- und/oder Vollständigkeit von den auf den Webseiten JSP-Develop veröffentlichten Source Codes. Die Verantwortung der Verwendung/Anwendung sowie etwaige Modifikation der hier veröffentlichten Sourcen obliegt einzig dem Benutzer der Webseite, welche die veröffentlichten Sourcen in einer Applikation/Anwendung einsetzt. Durch das Kopieren und/oder Benutzen der Sourcen in einer Applikation/Anwendung bzw. etwaigen Abschriften wird dieser Rechtshinweis anerkannt.

Java, JSP, JavaServer Pages, J2EE, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. IBM, WebSphere are trademarks or registered trademarks of International Business Machines Corporation. Other trademarks and registered trademarks are the property of their respective owners.