Reguläre Ausdrücke verwenden

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.

Tipp

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

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

test\wnew findet test2new oder test_new

\W

Ein beliebiges Zeichen, das kein alphanumerisches Zeichen oder ein Unterstrich ist

test\Wnew findet test.new oder test-new

\d

Ein beliebiges numerisches Zeichen

test\d\d findet test21

\D

Ein beliebiges Zeichen, das kein numerisches Zeichen ist

test\D\D findet test_a

\s

Ein beliebiges Leerzeichen oder Tabulatorzeichen oder Zeilenendezeichen (CR)(LF)

test\s1 findet test 1

\S

Ein beliebiges Zeichen, das kein Leerzeichen und kein Tabulatorzeichen und kein Zeilenendezeichen (CR)(LF) ist

test\S1 findet test_1

\t

Tabulator

a\tb findet a     b

\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: Extras > Optionen > Programmoptionen > Editoren > ST-Editor -> Zeilenendezeichen anzeigen

test\r\n findet test(CR)(LF)

.

Ein einzelnes Zeichen, einschließlich Leerzeichen, Tabulatorzeichen und Zeilenumbruchzeichen (CR)(LF)

te.t1 findet text1 oder test1

\

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.

test\( findet test(

[class]

Das Zielzeichen ist Teil der Zeichenklasse (siehe Zeichenklassen unten)

[abc] findet a, b oder c

[^class]

Das Zielzeichen ist nicht Teil der Zeichenklasse (siehe Zeichenklassen unten)

[^xyz] findet jedes Zeichen außer x, y oder z

Verwandte Themen

Quantoren

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

pla+ce findet place oder plaace

*

0 oder mehr

pla*ce findet plce oder place oder plaace

?

0 oder 1

pla?ce findet plce oder place

{int}

Exakt int-mal

tyco{3}n findet tycooon

{int,}

Mindestens int-mal

tyco{2,}n findet tycoooon

{min,max}

Mindestens min-mal und maximal max-mal

tyco{1,2}n findet tycon oder tycoon

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 := ''

Gruppen

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.

i(\d)Var\1 findet i1Var1, i2Var2 oder i6Var6, aber nicht i1Var2

(\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.

i(?:\d)Var(\d)Value\1 findet i1Var2Value2 oder i1Var3Value3

In diesem Fall wird mit \1 auf den ersten Rückverweis (\d) verwiesen.

\number

Definiert einen Rückverweis, mit dem ein zuvor abgeglichener Teilausdruck später im selben regulären Ausdruck identifiziert werden kann.

Beispiel 1:

Suchmuster: [a-c](\d)(?:in|out)put_\1 findet a1input_1 oder b2output_2

Erläuterung des Suchmusters:

[a-c] findet a, b oder c

(\d) gefolgt von einer Ziffer, die als Rückverweis dient

(?:in|out) gefolgt von in oder out, dieser Ausdruck dient nicht als Rückverweis

put_ gefolgt von put_

\1 gefolgt vom ersten Rückverweis

Rückverweise können auch in der Ersatzzeichenfolge verwendet werden.

Beispiel 2:

Suchmuster: iCount(\d) findet iCount gefolgt von einer Ziffer, die als Rückverweis dient

Ersatzmuster: iValue\1 ersetzt die gesuchte Zeichenfolge iCount durch iValue gefolgt vom ersten Rückverweis

Ergebnis mit Rückverweis ist z.B. 3: iCount3 wird durch iValue3 ersetzt

Assertions

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

\bis findet island und is, aber nicht This

is\b findet This und is, aber nicht island

\bis\b findet is, aber nicht island

\B

Keine Wortgrenze

\Bis findet This, aber nicht island

is\B findet island, aber nicht This

\Bis\B findet Wish, aber nicht is oder island

^

Zeilenanfang

^iVar findet iVar nur, wenn die gesuchte Zeichenfolge mit einer neuen Zeile beginnt. Mit ^\s*iVar wird     iVar mit weißen Lücken am Zeilenanfang gefunden.

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

iVar$ findet iVar nur, wenn die gesuchte Zeichenfolge mit einer Zeile endet.

(?=Teilausdruck)

Positiver Lookahead

Das Zeichen nach der Assertion muss mit dem Teilausdruck übereinstimmen, es werden jedoch keine Zeichen verbraucht.

Var(?=\d) findet alle Var, auf die eine Ziffer folgt

(?!Teilausdruck)

Negativer Lookahead

Das Zeichen nach der Assertion darf nicht mit dem Teilausdruck übereinstimmen, es werden jedoch keine Zeichen verbraucht.

Var(?!\d) findet alle Var, auf die keine Ziffer folgt

Alternativen

Ein Muster kann verschiedene Alternativen beinhalten:

Zeichen

Beschreibung

Beispiel

|

Trennzeichen, das zwei alternative Muster oder Teilausdrücke trennt.

(i|o)Var findet iVar oder oVar

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.

Zeichenklassen

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.

[abc] findet a, b oder c

[^xyz] findet jedes Zeichen außer x, y oder z

Bereich

Platzieren Sie den - (Bindestrich) zwischen zwei gültigen Zeichen, um einen Bereich zu spezifizieren.

[a-z] findet alle Kleinbuchstaben im Bereich a bis z.

[^D-F] findet alle Zeichen außer die Großbuchstaben D, E und F

[1-36-9] findet eine Ziffer zwischen 1 und 3 oder 6 und 9.

[abc1-5] findet a, b oder c oder eine Ziffer zwischen 1 und 5.

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.

[a\-z]Var findet aVar, -Var oder zVar

[ab\t\]] findet a, b, Tabulator oder ]

Letzte Änderung am: 2022-11-11Feedback zu dieser SeitePanasonic Hotline