Syntax für Reguläre Ausdrücke (Regex)

0 | 2 Kommentare | 17877 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "Syntax für Reguläre Ausdrücke (Regex)" mit Ihrem Wissen!

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

 
Text
1
Spider[- ]?man

Dieser Ausdruck würde folgende Worte erkennen:

  • Spiderman
  • Spider man
  • Spider-man

Passwort prüfen

 
Text
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.


Wikiseite bearbeiten

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.

Mitarbeiter
  • 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 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.

Kommentare: Syntax für Reguläre Ausdrücke (Regex)

Neuen Kommentar schreiben
Allgemeiner Aufbau
Beantworten

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 Modifier

Der 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 / :P

Firebird am 11.05.2008 um 16:02
Re: Allgemeiner Aufbau
Beantworten

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.

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 Modifier

Der 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 / :P

Holger V am 15.05.2008 um 22:09