In diesem Abschnitt erhalten Sie eine Übersicht über die wichtigsten
Syntaxelemente.
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