Regular Expressions

Ein Auffrischungsbericht zur Syntax und den Regeln für das Erstellen von regulären Ausdrücken.

Siehe auch Konfigurieren eines inkrementellen Indexes einer gestaffelten Website.

Syntax regulärer Ausdruck

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

^

Beginn 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 sofort folgt links von einem Paar eckiger Klammern.

    • $ (Dollarzeichen) ist am Ende eines regulären Ausdrucks etwas Besonderes.

    • . (period) ist ein regulärer Ausdruck mit einem Zeichen, der mit jedem Zeichen übereinstimmt, einschließlich zusätzlicher Codesatzzeichen mit Ausnahme der neuen Zeile.

    • Eine nicht leere Zeichenfolge in eckigen Klammern [ ] (linke und rechte) ist ein regulärer Ausdruck mit einem Zeichen, der mit einem Zeichen, einschließlich ergänzender Codesatzzeichen, in dieser Zeichenfolge übereinstimmt.

      Wenn das erste Zeichen der Zeichenfolge jedoch ein ^ (Zirkumflex) ist, stimmt der reguläre Ausdruck mit einem Zeichen, einschließlich zusätzlicher Codesatzzeichen, überein, mit Ausnahme der neuen Zeile und der übrigen 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: [0-9] entspricht [0123456789].

      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). Entspricht []a-f] beispielsweise 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 Ausdruck aus regulären Ausdrücken mit einem Zeichen

Sie können die folgenden Regeln verwenden, um reguläre Ausdruck aus regulären Ausdrücken mit einem Zeichen zu erstellen:

  • Ein regulärer Ausdruck mit einem Zeichen ist ein regulärer Ausdruck, der mit dem regulären Ausdruck mit einem Zeichen übereinstimmt.
  • Ein regulärer einstelliger Ausdruck gefolgt von einem * (Sternchen) ist ein regulärer Ausdruck, der Null oder mehr Vorkommen des regulären einstelligen 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 regulärer Ausdruck mit einem Zeichen gefolgt von einem ? (Fragezeichen) ist ein regulärer Ausdruck, der Null oder einem Vorkommen des regulären einstelligen 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 regulärer Ausdruck mit einem Zeichen gefolgt von einem + (Pluszeichen) ist ein regulärer Ausdruck, der einem oder mehreren Vorkommen des regulären einstelligen 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. {m} entspricht genau m Vorkommen; {m,} mindestens m Vorkommen entspricht; {m,n} entspricht einer beliebigen Anzahl von Vorkommen zwischen m und n einschließlich. Wenn eine Auswahl vorhanden ist, stimmt der reguläre Ausdruck mit so vielen Vorkommen wie möglich überein.
  • Die Verkettung von regulären Ausdrücken ist ein regulärer Ausdruck, der der Verkettung der Zeichenfolgen entspricht, die jeder Komponente des regulären Ausdrucks zugeordnet sind.
  • Ein regulärer Ausdruck, der zwischen den Zeichensequenzen ( und ) eingeschlossen ist, ist ein regulärer Ausdruck, der mit dem gleichnamigen regulären Ausdruck übereinstimmt.
  • Ein regulärer Ausdruck, gefolgt von einem | (senkrechten Rohr), gefolgt von einem regulären Ausdruck, ist ein regulärer Ausdruck, der entweder dem ersten regulären Ausdruck (vor dem senkrechten Rohr) oder dem zweiten regulären Ausdruck (nach dem senkrechten Rohr) 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 Anfangssegment einer Zeile übereinstimmt.
  • Ein $ (Dollarzeichen) am Ende eines gesamten regulären Ausdrucks schränkt diesen regulären Ausdruck ein, damit er mit einem Endsegment 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 Ausdruck mit Klammern verwenden können. Eine Ziffer kann beispielsweise durch den einstelligen regulären Ausdruck [0-9] oder durch den regulären Ausdruck der Zeichenklasse mit einem Zeichen [[:digit:]] 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 Beginn und am Wortende. 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

[[:<:]]

beginn eines Wortes

[[:>:]]

Wortende

Auf dieser Seite