Show Menu
THEMEN×

Regular Expressions

Ein Auffrischungsbericht zur Syntax und den Regeln zum Erstellen von regulären Ausdrücken.
Syntax regulärer Ausdrücke
Text
Beliebiges einzelnes Zeichen
[Zeichen]
Zeichenklasse: Zeichen
[^chars]
Zeichenklasse: Keine Zeichen
text1|text2
Alternative: text1 oder text2
Quantifizierer
?
0 oder 1 des vorhergehenden Textes
*
0 oder N des vorhergehenden Textes (N > 1)
+
1 oder N des vorhergehenden Textes (N > 1)
Gruppierung
(text)
Gruppierung von Text, entweder um die Ränder einer Alternative festzulegen oder um Referenzen wiederherzustellen, bei denen die n. Gruppe auf der RHS einer RewriteRule mit $N verwendet wird)
Anker
^
Anfang des Zeilenankers.
$
Zeilenende-Anker.
Escaping
\char
Entkommen Sie dem bestimmten Zeichen. So geben Sie beispielsweise die Zeichen an ".[] ()" und so weiter.
Regeln zu regulären Ausdrücken
  • Ein gewöhnliches Zeichen - nicht eines der unten beschriebenen Sonderzeichen - ist ein regulärer Ausdruck mit einem Zeichen, der sich selbst entspricht.
  • Ein umgekehrter Schrägstrich (\) gefolgt von einem Sonderzeichen ist ein regulärer Ausdruck mit einem Zeichen, der dem Sonderzeichen selbst entspricht. Sonderzeichen sind:
    • . (Punkt), * (Sternchen), ? (Fragezeichen), + (Pluszeichen), [ (eckige Klammer links), | (vertikale Linie) und \ (umgekehrter Schrägstrich) sind immer Sonderzeichen, es sei denn, sie erscheinen in eckigen Klammern.
    • ^ (Caret oder Zirkumflex) ist besonders am Anfang eines regulären Ausdrucks, oder wenn es unmittelbar folgt links von einem Paar eckiger Klammern.
    • $ (Dollarzeichen) ist ein Sonderzeichen am Ende eines regulären Ausdrucks.
    • . (period) ist ein einstelliger regulärer Ausdruck, der mit jedem Zeichen übereinstimmt, einschließlich ergänzender Codesatzzeichen mit Ausnahme von new-line.
    • Eine nicht leere Zeichenfolge aus Zeichen, die in [ ] (eckige Klammern links und rechts) eingeschlossen ist, ist ein regulärer Ausdruck mit einem Zeichen, einschließlich ergänzender Codesatzzeichen, in dieser Zeichenfolge.
      Wenn das erste Zeichen der Zeichenfolge jedoch ein ^ (Zirkumflex) ist, stimmt der reguläre Ausdruck mit einem Zeichen mit jedem beliebigen Zeichen überein, einschließlich ergänzender Codesatzzeichen, mit Ausnahme der neuen Zeile und der restlichen Zeichen in der Zeichenfolge.
      Diese besondere Bedeutung ^ hat nur dann eine Bedeutung, wenn sie zuerst in der Zeichenfolge vorkommt. Sie können - (Minuszeichen) verwenden, um einen Bereich aufeinander folgender Zeichen anzugeben, einschließlich zusätzlicher Codesatzzeichen. Beispiel: # entspricht #.
      Zeichen, die den Bereich angeben, müssen aus demselben Codesatz stammen. Wenn die Zeichen aus verschiedenen Codesätzen stammen, wird eines der Zeichen, die den Bereich angeben, zugeordnet. Diese besondere Bedeutung - verliert sie, wenn sie zuerst (nach einer Initial- ^ oder gegebenenfalls letzten) im String auftritt. Die ] (rechte eckige Klammer) beendet eine solche Zeichenfolge nicht, wenn es sich um das erste Zeichen innerhalb der Zeichenfolge handelt, nach einer ersten ^ Angabe (sofern vorhanden). Beispielsweise entspricht #a-f entweder einer ] (rechten eckigen Klammer) oder einem der ASCII-Buchstaben a bis f. Die vier oben als Sonderzeichen aufgelisteten Zeichen stehen für sich in einer solchen Zeichenfolge.
Regeln zum Erstellen regulärer Ausdrücke aus regulären Ausdrücken mit einem Zeichen
Sie können die folgenden Regeln verwenden, um reguläre Ausdrücke aus regulären Ausdrücken mit einem Zeichen zu erstellen:
  • Ein regulärer Ausdruck mit einem Zeichen ist ein regulärer Ausdruck, der dem entspricht, was der reguläre Ausdruck mit einem Zeichen enthält.
  • Ein einstelliger regulärer Ausdruck gefolgt von einem * (Sternchen) ist ein regulärer Ausdruck, der null oder mehr Vorkommen des einstelligen regulären Ausdrucks entspricht, bei dem es sich möglicherweise um ein zusätzliches Codesatzzeichen handelt. Bei einer beliebigen Option wird die längste Zeichenfolge links gewählt, die eine Übereinstimmung zulässt.
  • Ein einstelliger regulärer Ausdruck gefolgt von einem ? (Fragezeichen) ist ein regulärer Ausdruck, der null oder ein Vorkommen des einstelligen regulären Ausdrucks entspricht, bei dem es sich möglicherweise um ein zusätzliches Codesatzzeichen handeln kann. Bei einer beliebigen Option wird die längste Zeichenfolge links gewählt, die eine Übereinstimmung zulässt.
  • Ein einstelliger regulärer Ausdruck gefolgt von einem + (Pluszeichen) ist ein regulärer Ausdruck, der einem oder mehreren Vorkommen des einstelligen regulären Ausdrucks entspricht, bei dem es sich möglicherweise um ein zusätzliches Codesatzzeichen handelt. Bei einer beliebigen Option wird die längste Zeichenfolge links gewählt, die eine Übereinstimmung zulässt.
  • Ein regulärer Ausdruck mit einem Zeichen gefolgt von {m} , {m,} oder {m,n} ist ein regulärer Ausdruck, der einem Bereich von Vorkommen des regulären Ausdrucks mit einem Zeichen entspricht. Die Werte von m und n müssen nicht negative Ganzzahlen unter 256 sein. exakt {m} m-Vorkommen entspricht; mindestens m Vorkommen {m,} ; Entspricht einer beliebigen Anzahl von Vorfällen zwischen m und n einschließlich. {m,n} Wenn eine Auswahl vorhanden ist, stimmt der reguläre Ausdruck mit so vielen Vorkommen wie möglich überein.
  • Die Verkettung regulärer Ausdrücke ist ein regulärer Ausdruck, der mit der Verkettung der Zeichenfolgen übereinstimmt, die mit jeder Komponente des regulären Ausdrucks übereinstimmen.
  • Ein regulärer Ausdruck, der zwischen den Zeichensequenzen ( und ) eingeschlossen ist, ist ein regulärer Ausdruck, der mit dem Inhalt des nicht formatierten regulären Ausdrucks übereinstimmt.
  • Ein regulärer Ausdruck, gefolgt von einem | (senkrechten Strich), gefolgt von einem regulären Ausdruck ist ein regulärer Ausdruck, der entweder dem ersten regulären Ausdruck (vor dem vertikalen Strich) oder dem zweiten regulären Ausdruck (nach dem vertikalen Strich) entspricht.
Sie können einen regulären Ausdruck auch so einschränken, dass er nur mit einem Anfangssegment oder finalen Segment einer Zeile oder mit beiden übereinstimmt.
  • Ein ^ (Zirkumflex) am Anfang eines regulären Ausdrucks schränkt diesen regulären Ausdruck so ein, dass er mit einem anfänglichen Segment einer Zeile übereinstimmt.
  • Ein $ (Dollarzeichen) am Ende eines gesamten regulären Ausdrucks schränkt diesen regulären Ausdruck so ein, dass er mit dem endgültigen Segment einer Zeile übereinstimmt.
  • Die Konstruktion '^regulärer Ausdruck$' beschränkt den regulären Ausdruck auf die Übereinstimmung mit der gesamten Zeile.
Es gibt einige vordefinierte Zeichenklassennamen, die Sie anstelle komplexer, mit Klammern versehener regulärer Ausdrücke verwenden können. Eine Ziffer kann beispielsweise durch den einstelligen regulären Ausdruck # oder durch den einstelligen regulären Ausdruck [ #] der Zeichenklasse dargestellt werden.
Die vordefinierten Zeichenklassen und ihre Bedeutung lauten wie folgt:
Character-Klasse
Beschreibung
[[:alnum:]]
Ein alphabetisches Zeichen oder eine Ziffer.
[[:alpha:]]
Ein alphabetisches Zeichen.
[[:leer gelassen:]]
Ein Leerzeichen oder eine Registerkarte.
[[:cntrl:]]
ein Kontrollcode; nicht druckbares Zeichen.
[[:digit:]]
Eine Ziffer.
[[:graph:]]
Beliebiges Druckzeichen außer Leerzeichen.
[[:lower:]]
Ein alphabetisches Kleinbuchstaben.
[[:print:]]
Beliebiges Druckzeichen einschließlich Leerzeichen.
[[:punct:]]
Interpunktion.
[[:Leerzeichen:]]
Leerzeichen wie Leerzeichen, Tabulatoren oder Zeilenende.
[[:top:]]
Ein alphabetisches Großbuchstaben.
[[:xdigit:]]
Eine hexadezimale Zahl, Groß- oder Kleinschreibung.
Zwei Klassennamen mit Sonderzeichen entsprechen dem Leerzeichen am Anfang und am Ende eines Wortes. Mit anderen Worten, sie stimmen nicht mit einem tatsächlichen Zeichen überein. Ein Wort gilt als eine beliebige Folge von Buchstaben, Ziffern oder Unterstrichen (_).
Character-Klasse
Beschreibung
[[:<:]]
Wortbeginn
[[:>:]]
Wortende