Syntax regulärer Ausdrücke - Referenz

In diesem Abschnitt erhalten Sie eine Übersicht über die wichtigsten Syntaxelemente.
Weitere Informationen zur Syntax von regulären Java™-Ausdrücken finden Sie auf der folgenden Website:
http://java.sun.com/docs/books/tutorial/essential/regex/
Die Syntaxreferenz finden Sie auf der folgenden Website:
http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html

Zeichen

In der folgenden Tabelle sind Zeichen aufgeführt.
Tabelle 1. Zeichen
Konstrukt Übereinstimmungen
x Das Zeichen x
\\ Das Backslash-Zeichen
\0n Das Zeichen mit dem Oktalwert 0n (0 <= n <= 7)
\0nn Das Zeichen mit dem Oktalwert 0nn (0 <= n <= 7)
\0mnn Das Zeichen mit dem Oktalwert 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh Das Zeichen mit dem Hexadezimalwert 0xhh
\uhhhh Das Zeichen mit dem Hexadezimalwert 0xhhhh
\t Das Tabulatorzeichen ('\u0009')
\n Das Zeilenumbruchzeichen (Zeilenvorschubzeichen) ('\u000A')
\r Das Wagenrücklaufzeichen ('\u000D')
\f Das Formularvorschubzeichen ('\u000C')
\a Das Alertzeichen (Signaltonzeichen) ('\u0007')
\e Das Escapezeichen ('\u001B')
\cx Das Steuerzeichen, das x entspricht

Zeichenklassen

In der folgenden Tabelle sind Zeichenklassen aufgeführt.
Tabelle 2. Zeichenklassen
Konstrukt Übereinstimmungen
[abc] a, b oder c (einfache Klasse)
[^abc] Alle Zeichen außer a, b oder c (Negation)
[a-zA-Z] a bis z oder A bis Z, einschließlich (Bereich)
[a-d[m-p]] a bis d oder m bis p: [a-dm-p] (Union-Verknüpfung)
[a-z&&[def]] d, e oder f (Schnittmenge)
[a-z&&[^bc]] a bis z, außer b und c: [ad-z] (Subtraktion)
[a-z&&[^m-p]] a bis z und nicht m bis p: [a-lq-z] (Subtraktion)

Vordefinierte Zeichenklassen

In der folgenden Tabelle sind vordefinierte Zeichenklassen aufgeführt.
Tabelle 3. Vordefinierte Zeichenklassen
Konstrukt Übereinstimmungen
. Beliebiges Zeichen
\d Eine Ziffer: [0-9]
\D Ein Zeichen, das keine Ziffer ist: [^0-9]
\s Ein Leerraumzeichen: [ \t\n\x0B\f\r]
\S Ein Zeichen, das kein Leerraumzeichen ist: [^\s]
\w Ein Wortzeichen: [a-zA-Z_0-9]
\W Ein Zeichen, das kein Wortzeichen ist: [^\w]

POSIX-Zeichenklassen

Die folgenden POSIX-Zeichenklassen gelten nur für US-ASCII.
Tabelle 4. Nur für US-ASCII geltende POSIX-Zeichenklassen
Konstrukt Übereinstimmungen
\p{Lower} Ein alphabetisches Zeichen in Kleinschreibung: [a-z]
\p{Upper} Ein alphabetisches Zeichen in Großschreibung: [A-Z]
\p{ASCII} Alle ASCII-Zeichen: [\x00-\x7F]
\p{Alpha} Ein alphabetisches Zeichen: [\p{Lower}\p{Upper}]
\p{Digit} Eine Dezimalziffer: [0-9]
\p{Alnum} Ein alphanumerisches Zeichen: [\p{Alpha}\p{Digit}]
\p{Punct} Interpunktion: Eines der folgenden Zeichen: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} Ein sichtbares Zeichen: [\p{Alnum}\p{Punct}]
\p{Print} Ein druckbares Zeichen: [\p{Graph}\x20]
\p{Blank} Ein Leerzeichen oder ein Tabulator: [ \t]
\p{Cntrl} Ein Steuerzeichen: [\x00-\x1F\x7F]
\p{XDigit} Eine Hexadezimalziffer: [0-9a-fA-F]
\p{Space} Ein Leerraumzeichen: [ \t\n\x0B\f\r]

java.lang.Character-Klassen

Die folgenden java.lang.Character-Klassen haben den einfachen Java-Zeichentyp.
Tabelle 5. java.lang.Character-Klassen des einfachen Java-Zeichentyps
Konstrukt Übereinstimmungen
\p{javaLowerCase} Äquivalent zu java.lang.Character.isLowerCase()
\p{javaUpperCase} Äquivalent zu java.lang.Character.isUpperCase()
\p{javaWhitespace} Äquivalent zu java.lang.Character.isWhitespace()
\p{javaMirrored} Äquivalent zu java.lang.Character.isMirrored()

Klassen für Unicode-Blöcke und Kategorien

In der folgenden Tabelle sind Klassen für Unicode-Blöcke und Kategorien aufgeführt.
Tabelle 6. Klassen für Unicode-Blöcke und Kategorien
Konstrukt Übereinstimmungen
\p{InGreek} Ein Zeichen im griechischen Block (einfacher Block)
\p{Lu} Ein Großbuchstabe (einfache Kategorie)
\p{Sc} Ein Währungssymbol
\P{InGreek}   Ein beliebiges Zeichen außer Zeichen im griechischen Block (Negation)
[\p{L}&&[^\p{Lu}]] Ein beliebiger Buchstabe, der kein Großbuchstabe ist (Subtraktion)

Abgleichkomponenten für Grenzen

In der folgenden Tabelle sind Abgleichkomponenten für Grenzen aufgeführt.
Tabelle 7. Abgleichkomponenten für Grenzen
Konstrukt Übereinstimmungen
^ Ein Zeilenanfang
$ Ein Zeilenende
\b Eine Wortgrenze
\B Alles außer einer Wortgrenze
\A Der Anfang der Eingabe
\G Das Ende der vorherigen Übereinstimmung
\Z Das Ende der Eingabe bis auf das endgültige Abschlusszeichen, falls vorhanden
\z Das Ende der Eingabe

Greedy-Quantoren

In der folgenden Tabelle sind Greedy-Quantoren aufgeführt.
Tabelle 8. Greedy-Quantoren
Konstrukt Übereinstimmungen
X? X, einmal oder nie
X* X, nie oder mehrmals
X+ X, einmal oder mehrmals
X{n} X, genau n-mal
X{n,} X, mindestens n-mal
X{n,m} X, mindestens n-mal aber nicht mehr als m-mal

Reluctant-Quantoren

In der folgenden Tabelle sind Reluctant-Quantoren aufgeführt.
Tabelle 9. Reluctant-Quantoren
Konstrukt Übereinstimmungen
X?? X, einmal oder nie
X*? X, nie oder mehrmals
X+? X, einmal oder mehrmals
X{n}? X, genau n-mal
X{n,}? X, mindestens n-mal
X{n,m}? X, mindestens n-mal aber nicht mehr als m-mal

Possessive-Quantoren

In der folgenden Tabelle sind Possessive-Quantoren aufgeführt.
Tabelle 10. Possessive-Quantoren
Konstrukt Übereinstimmungen
X?+ X, einmal oder nie
X*+ X, nie oder mehrmals
X++ X, einmal oder mehrmals
X{n}+ X, genau n-mal
X{n,}+ X, mindestens n-mal
X{n,m}+ X, mindestens n-mal aber nicht mehr als m-mal

Logische Operatoren

In der folgenden Tabelle sind logische Operatoren aufgeführt.

Tabelle 11. Logische Operatoren
Konstrukt Übereinstimmungen Anmerkungen
XY X gefolgt von Y -
X | Y Entweder X oder Y Gehen Sie bei der Verwendung mit Sorgfalt vor.

Wenn Sie in der Java-Laufzeitumgebung Alternativen bei der Implementierung von regulären Ausdrücken verwenden, kann abhängig von der Größe des zu analysierenden Texts eine Laufzeitausnahmebedingung wegen Stacküberlaufs auftreten.

Ein Muster, das sich für kurze Eingabetexte gut eignet, kann bei längeren Eingabetexten hingegen fehlschlagen.

(X ) X, als Erfassungsgruppe Verwenden Sie Erfassungsgruppen, um Annotationsfeatures übereinstimmende Unterteilungen eines regulären Ausdrucks zuzuordnen.

Erfassungsgruppen werden von links nach rechts nummeriert (beginnend bei 1).

Gruppe 0 führt einen Abgleich des vollständigen regulären Ausdrucks durch.

Rückverweis

In der folgenden Tabelle sind Rückverweise aufgeführt.
Tabelle 12. POSIX-Zeichenklassen (nur US-ASCII)
Konstrukt Übereinstimmungen
\n Das, mit dem die n-te Erfassungsgruppe übereinstimmt

Entwertungszeichen

In der folgenden Tabelle sind Entwertungszeichen aufgeführt.
Tabelle 13. POSIX-Zeichenklassen (nur US-ASCII)
Konstrukt Übereinstimmungen
\ Keine, bewertet aber das folgende Zeichen als Literal
\Q Keine, bewertet aber alle Zeichen zwischen \Q und \E als Literale
\E Keine, bewertet aber alle Zeichen zwischen \Q und \E als Literale

Spezielle Konstrukte (nicht erfassend)

In der folgenden Tabelle sind spezielle Konstrukte aufgeführt.
Tabelle 14. Spezielle Konstrukte (nicht erfassend)
Konstrukt Übereinstimmungen
(?:X) X, als Nicht-Erfassungsgruppe
(?idmsux-idmsux)  Keine, aktiviert bzw. inaktiviert aber die Übereinstimmungsmarkierungen i d m s u x
(?idmsux-idmsux:X)   X, als Nicht-Erfassungsgruppe, wobei die angegebenen Markierungen i d m s u x aktiviert oder inaktiviert sind
(?=X) X, über positiven Look-Ahead mit der Breite Null
(?!X) X, über negativen Look-Ahead mit der Breite Null
(?<=X) X, über positiven Look-Behind mit der Breite Null
(?X) X, über negativen Look-Behind mit der Breite Null
(?>X) X, als unabhängige Nicht-Erfassungsgruppe
(?<!X) Keine Übereinstimmung, wenn X vor der Regel auftritt. Wenn beispielsweise X=Bill\s gilt, stimmt das Muster für reguläre Ausdrücke "(?<Bill\s) Ford" nur mit Begriffen überein, die der Zeichenfolge "Ford" entsprechen und denen der Begriff "Bill" nicht vorangestellt ist.

Übereinstimmungsmarkierungen

In der folgenden Tabelle sind Übereinstimmungsmarkierungen aufgeführt.
Tabelle 15. Die wichtigsten Übereinstimmungsmarkierungen
Konstrukt Übereinstimmungen
(?i) Abgleich ohne Beachtung der Groß-/Kleinschreibung
(?d) Aktiviert den UNIX-Zeilenmodus
(?m) Aktiviert den mehrzeiligen Modus
(?s) Aktiviert den Dotall-Modus
(?u) Aktiviert die Unicode-kompatible Unterscheidung der Groß-/Kleinschreibung
(?x) Ermöglicht die Verwendung von Leerzeichen und Kommentaren in Mustern. In diesem Modus werden Leerzeichen ignoriert und mit dem Zeichen # beginnende Kommentare werden bis zum Zeilenende ignoriert.

Copyright 1993-2006 Sun Microsystems, Inc. Genehmigter Nachdruck



Feedback | Literaturübersicht