Reguläre Ausdrücke sind Zeichen, die nach einem bestimmten Muster (Syntax) kombiniert werden. Sie können für erweiterte Such- und/oder Ersetzenvorgänge verwendet werden. Die Implementierung regulärer Ausdrücke verwendet die Mustersyntax für reguläre Ausdrücke ECMAScript.
In der Statusleiste werden ungültige reguläre Ausdrücke angezeigt und angegeben, wenn die gesuchte Zeichenfolge keine Treffer ergibt. Verwenden Sie den Ausdrucksgenerator, um gültige Muster zu erstellen.
![]() |
Im Dialogfeld Suchen das Symbol Reguläre Ausdrücke verwenden aktivieren |
Muster-Sonderzeichen sind Zeichen (oder Zeichensequenzen), die in einem regulären Ausdruck eine Sonderbedeutung haben. Sie stellen entweder ein Zeichen dar, das in einer Zeichenfolge schwer auszudrücken ist, oder eine Kategorie von Zeichen. Jedes dieser Muster-Sonderzeichen wird in der Zielsequenz mit einem einzelnen Zeichen abgeglichen (es sei denn, ein Quantor legt etwas anderes fest).
Syntax |
Beschreibung |
Beispiel |
---|---|---|
\w |
Ein beliebiges alphanumerisches Zeichen oder ein Unterstrich |
|
\W |
Ein beliebiges Zeichen, das kein alphanumerisches Zeichen oder ein Unterstrich ist |
|
\d |
Ein beliebiges numerisches Zeichen |
|
\D |
Ein beliebiges Zeichen, das kein numerisches Zeichen ist |
|
\s |
Ein beliebiges Leerzeichen oder Tabulatorzeichen oder Zeilenendezeichen (CR)(LF) |
|
\S |
Ein beliebiges Zeichen, das kein Leerzeichen und kein Tabulatorzeichen und kein Zeilenendezeichen (CR)(LF) ist |
|
\t |
Tabulator |
|
\r\n |
Zeilenendezeichen Im ST-Editor enden Zeilen in "\r\n" (ein Wagenrücklauf gefolgt von einer neuen Zeile). Diese Zeichen sind nicht sichtbar, jedoch im ST-Editor vorhanden und es kann nach ihnen gesucht werden. Siehe Option: Zeilenendezeichen anzeigen -> |
|
|
Ein einzelnes Zeichen, einschließlich Leerzeichen, Tabulatorzeichen und Zeilenumbruchzeichen (CR)(LF) |
|
\ |
Die folgenden Sonderzeichen, die in regulären Ausdrücken verwendet werden, müssen mit einem \ (umgekehrten Schrägstrich) geschützt werden, wenn sie als Text gesucht werden sollen: ^ $ \ . * + ? ( ) [ ] { } | Zeichen, die eine der oben genannten Sonderzeichensequenzen bilden, können nicht geschützt werden. |
|
[class] |
Das Zielzeichen ist Teil der Zeichenklasse (siehe Zeichenklassen unten) |
|
[^class] |
Das Zielzeichen ist nicht Teil der Zeichenklasse (siehe Zeichenklassen unten) |
|
Quantoren stehen nach einem Zeichen oder Muster-Sonderzeichen. Sie legen fest, wie oft ein Zeichen im Treffer vorkommt:
Quantor |
Anzahl Übereinstimmungen |
Beispiel |
---|---|---|
+ |
1 oder mehr |
|
* |
0 oder mehr |
|
? |
0 oder 1 |
|
{int} |
Exakt int-mal |
|
{int,} |
Mindestens int-mal |
|
{min,max} |
Mindestens min-mal und maximal max-mal |
|
All diese Quantoren sind von Natur aus gierig (d.h., sie gleichen so viele Zeichen, die die Bedingung erfüllen, wie möglich ab). Dieses Verhalten kann geändert werden, indem dem Quantor ein Fragezeichen (?) nachgestellt wird. Dadurch wird der Quantor nicht gierig, d.h., er gleicht so wenig Zeichen, die die Bedingung erfüllen, wie möglich ab.
Quantor |
Anzahl Übereinstimmungen |
Beispiel |
---|---|---|
+? |
1 oder mehr Zeichen, nicht gierige Suche |
Suchmuster: Beispieltext: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Suchergebnis: 'abc' und 'ABC' Es werden so wenig Zeichen wie möglich zwischen dem ersten Apostroph und dem nächsten Apostroph gefunden. |
+ |
1 oder mehr Zeichen, gierige Suche |
Suchmuster: Beispieltext: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Suchergebnis: 'abc'; sVar2 := 'ABC'; sVar3 := '' Es werden so viele Zeichen wie möglich zwischen dem ersten Apostroph und dem nächsten Apostroph gefunden. |
*? |
0 oder mehr Zeichen, nicht gierige Suche |
Suchmuster: Beispieltext: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Suchergebnis: 'abc' und 'ABC' und '' |
* |
0 oder mehr Zeichen, gierige Suche |
Suchmuster: Beispieltext: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Suchergebnis: 'abc'; sVar2 := 'ABC'; sVar3 := '' |
Mit Gruppen können Quantoren auf eine Zeichensequenz (anstelle eines einzelnen Zeichens) angewendet werden.
Zeichengruppe |
Beschreibung |
Beispiel |
---|---|---|
(Teilausdruck) |
Erfasst die Zeichen in der Zielsequenz, die den Teilausdruck darstellen, und speichert sie als Teiltreffer. Jeder Teiltreffer wird in der Reihenfolge nummeriert, in der seine öffnende Klammer vorkommt (der erste Teiltreffer ist Rückverweisnummer 1, der zweite Rückverweisnummer 2 usw.). Die Rückverweisnummer kann im Feld "Suchen" oder "Ersetzen" wiederverwendet werden. |
(\d) ist der Teilausdruck der ersten gefundenen Ziffer, die den ersten Rückverweis erzeugt (N=1). Dieser Rückverweis wird mit \1 verwendet, um denselben Inhalt wie im Rückverweis zu identifizieren. |
(?:Teilausdruck) |
Definiert eine Gruppierungen ohne Rückwärtsreferenz. |
In diesem Fall wird mit |
\number |
Definiert einen Rückverweis, mit dem ein zuvor abgeglichener Teilausdruck später im selben regulären Ausdruck identifiziert werden kann. |
Beispiel 1: Suchmuster: Erläuterung des Suchmusters:
|
Rückverweise können auch in der Ersatzzeichenfolge verwendet werden. |
Beispiel 2: Suchmuster: Ersatzmuster: Ergebnis mit Rückverweis ist z.B. 3: iCount3 wird durch iValue3 ersetzt |
Assertions spezifizieren eine Position in der Zeichenfolge, an der eine Übereinstimmung vorkommen muss. Bei Verwendung einer Assertion im Suchausdruck geht die Engine für reguläre Ausdrücke nicht durch die Zielsequenz und verbraucht keine Zeichen. Stattdessen sucht sie nur an der spezifizierten Position nach einer Übereinstimmung.
Zeichengruppe |
Beschreibung |
Beispiel |
---|---|---|
\b |
Wortgrenze |
|
\B |
Keine Wortgrenze |
|
^ |
Zeilenanfang |
Tipp Wird die Caret-Taste <^> gefolgt von einem Vokal, z.B. a, e, i, o, gedrückt, wird das Caret als Zirkumflex interpretiert, d.h. â, ê, î, ô, û. Um dies zu vermeiden, drücken Sie <^> gefolgt von der Leertaste. |
$ |
Zeilenende |
|
(?=Teilausdruck) |
Positiver Lookahead Das Zeichen nach der Assertion muss mit dem Teilausdruck übereinstimmen, es werden jedoch keine Zeichen verbraucht. |
|
(?!Teilausdruck) |
Negativer Lookahead Das Zeichen nach der Assertion darf nicht mit dem Teilausdruck übereinstimmen, es werden jedoch keine Zeichen verbraucht. |
|
Ein Muster kann verschiedene Alternativen beinhalten:
Zeichen |
Beschreibung |
Beispiel |
---|---|---|
| |
Trennzeichen, das zwei alternative Muster oder Teilausdrücke trennt. |
|
Trennen Sie mehrere alternative Muster in einem regulären Ausdruck mit dem Trennzeichen (|): Der reguläre Ausdruck findet einen Treffer, wenn und sobald eine der Alternativen übereinstimmt.
Teilausdrücke (in Gruppen oder Assertions) können das Trennzeichen ebenfalls zum Trennen verschiedener Alternativen verwenden.
Eine Zeichenklasse ist eine Folge von Zeichen zwischen eckigen Klammern [ ].
Das reguläre Ausdrucksobjekt versucht, die gesamte Zeichenklasse mit einem einzelnen Zeichen in der Zielsequenz abzugleichen (es sei denn, ein Quantor legt etwas anderes fest).
Die Zeichenklasse kann eine beliebige Kombination folgender Zeichen beinhalten:
Typ |
Beschreibung |
Beispiel |
---|---|---|
Einzelne Zeichen |
Alle spezifizierten Zeichen werden als Teil der Klasse betrachtet, mit Ausnahme der Sonderzeichen - (Bindestrich), [ (linke eckige Klammer) und ] (rechte eckige Klammer). Alle Muster-Sonderzeichen wie \t, \d etc. können auch in der Spezifikation einer Zeichenklasse verwendet werden. |
|
Bereich |
Platzieren Sie den - (Bindestrich) zwischen zwei gültigen Zeichen, um einen Bereich zu spezifizieren. |
|
Geschützte Zeichen |
Die Zeichen -]\^ haben in Zeichenklassendefinitionen eine Sonderbedeutung. Damit diese Zeichen als normale Zeichen behandelt werden, stellen Sie ihnen einen umgekehrten Schrägstrich voran, um ihre Sonderbedeutung zu unterdrücken. |
|