Syntax für Reguläre Ausdrücke (Regex)
Anzeige Hier werben
Reguläre Ausdrücke machen im Grunde zwei Dinge aus: Zum einen können durch bestimmte Zeichen Wiederholungen von Zeichen, Zeichenfolgen oder -klassen bestimmt werden, zum anderen können durch Zeichenklassen Ausdrücke verallgemeinert werden, so dass sie auf mehrere, verschiedene Zeichenfolgen zutreffen. Diese zwei Punkte sollen in diesem Artikel kurz beschrieben werden.
Quantifier (Wiederholungen)
| Zeichen |
Bedeutung |
| a? |
a kommt kein- oder einmal vor. |
| a+ |
a kommt mindestens einmal vor. |
| a* |
a kommt kein oder mehrmals vor. |
| a{3} |
a kommt genau drei mal vor. |
| a{3,} |
a kommt mindestens drei mal vor. |
| a{,5} |
a kommt maximal fünf mal vor. |
| a{3,5} |
a kommt mindestens drei, aber maximal fünf mal vor. |
| ^a |
Die Zeichenkette beginnt mit einem Text der auf a passt |
| ausdruck$ |
Die Zeichenkette endet mit einem Text der auf ausdruck passt |
| ^ab$ |
Die Zeichenkette passt von Anfang bis Ende auf ab |
Sollen mehrere verschiedene Zeichen angesprochen werden, muss um diese eine runde Klammer gesetzt werden: (ab)? würde folgendes bedeuten: ab kommt ein- oder keinmal vor.
Zeichenklassen
| Zeichen |
Bedeutung |
| . |
Jegliches Zeichen (Ausnahme der Zeilenumbruch, siehe auch bei den Modifiern) |
| A-Z |
ABCDEFGHIJKLMNOPQRSTVWXYZ |
| a-z |
abcdefghijklmnopqrstvwxyz |
| 0-9 oder \d |
0123456789 |
| \w |
A-Za-z0-9 |
| \s |
s.g. Whitespaces, also Leerzeichen, Zeilenumbrüche, Tabulatoren etc. |
Dies ist nur eine kleine Auswahl der wichtigsten Zeichenklassen. Eine vollständige Auflistung ist im Artikel "Zeichenklassen" zu finden.
Einfache Beispiele
Verschiedene Schreibweisen finden
1 | Spider[- ]?man
|
Dieser Ausdruck würde folgende Worte erkennen:
- Spiderman
- Spider man
- Spider-man
Passwort prüfen
1 | ^([A-Za-z0-9ÄÖÜäöüß]{6,250})$
|
Der Ausdruck erlaubt Passwörter mit sechs bis 250 Zeichen, welches Buchstaben aus dem Alphabet (in Groß und Kleinschreibung) sowie Umlaute (ebenfalls Groß und Klein) und "ß" benutzt.
Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 5 Personen an der Seite "Syntax für Reguläre Ausdrücke (Regex)" mitgewirkt.
Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "Syntax für Reguläre Ausdrücke (Regex)" hier bearbeiten.
-
Gelernter Fachinformatiker für Anwendungsentwicklung mit Faible für neue Technologien rund um PHP/CSS/XHTML/JavaScript/AS/Flex/Air.
-
David Danier arbeitet seit mehr als neun Jahren im Bereich Web Programmierung und ist unter anderem Geschäftsführer der Webagentur Team23 GbR, sowie Webmasterpro.de.
-
Student der Biochemie und seit einigen Jahren im Hobby-Entwicklerbereich tätig. Stärken in XHTML/CSS und PHP, alles was mit Grafik zu tun hat, gehört nicht dazu.
-
hat keine Beschreibung angegeben. Eine Beschreibung kann man unter dem Punkt "Profil bearbeiten" im Kontrollzentrum eintragen.
-
Christopher Korn arbeitet seit mehr als 4 Jahren für die Landeshauptstadt München im Bereich Software Administration und IT Service Management.


Allgemeiner Aufbau
Die Bezeichnungen im allgemeinen Aufbau halte ich so für falsch.
Zunächst einmal sollte strenger zwischen (B)RE, PCRE und ERE unterschieden werden. Der Begriff "Regulärer Ausdruck" im strengen (siehe Typ 3 Grammatik) Sinne umfasst nur eine kleine Untermenge der PCRE.
Dann ist die Erklärung zum Aufbau selbst falsch. In Perl notiert man reguläre Ausrücke per
Delemiter Ausdruck Delemiter ModifierDer reguläre Ausdruck ist dabei aber nur der Teil zwischen den Delemitern. (Das folgere ich zumindest aus der perlre Manpage)
Die Notation ist darüber hinaus spezifisch für Perl und PHP (und evntl. mehr). In Python sieht z.B. der selbe Ausdruck so aus:
re.compile("Ausdruck", re.<MODIFIER>)Übrigens: Einer der beliebtesten Delimiter ist
/:PRe: Allgemeiner Aufbau
nunja, dann aus 1 mach 2. wird dann zwar recht dünn, vor allem, da auch noch ein extra Artikel für die Zeichenklassen existiert, das ist dann aber nunmal so.