Double Commander

2.14. Syntax regulärer Ausdrücke

Inhalt

1. Einführung
2. Einfacher Vergleich
3. Escape-Sequenzen
4. Zeichenklassen
5. Metazeichen
5.1. Zeilentrenner
5.2. Vordefinierte Klassen
5.3. Wortgrenzen
5.4. Iteratoren (Quantifizierer)
5.5. Alternativen
5.6. Unterausdrücke (Gruppen)
5.7. Rückwärtsreferenzen
6. Lookaround-Assertionen
7. Nicht-einfangende Gruppen
8. Atomare Gruppen
9. Unicode-Kategorien
10. Modifikatoren

Double Commander verwendet die freie Bibliothek TRegExpr von Andrey Sorokin.

1. Einführung

Reguläre Ausdrücke (Regular Expressions) sind eine weit verbreitete Methode zur Definition von Suchmustern in Texten. Spezielle Zeichen (Metazeichen) ermöglichen es, Bedingungen wie den Zeilenanfang oder das mehrfache Vorkommen von Zeichengruppen festzulegen.

Double Commander unterstützt reguläre Ausdrücke in folgenden Funktionen:

Die TRegExpr-Bibliothek unterstützt sowohl ANSI als auch Unicode.

2. Einfacher Vergleich

Jedes normale Zeichen entspricht sich selbst. Um Metazeichen als normalen Text zu suchen, muss ein Backslash \ vorangestellt werden (z. B. \^ für das Zeichen "^").

Beispiele
AusdruckErgebnis
foobarSucht nach dem Text foobar
\^FooBarSucht nach dem Text ^FooBar

3. Escape-Sequenzen

Ähnlich wie in C oder Perl können Sonderzeichen wie Tabs (\t) oder Zeilenumbrüche (\n) verwendet werden.

Sequenzen
\xnnZeichen mit Hex-Code nn
\tTabulator (TAB)
\nZeilenvorschub (LF)
\rWagenrücklauf (CR)

4. Zeichenklassen

In eckigen Klammern [] kann eine Liste von Zeichen angegeben werden, von denen eines zutreffen muss. Ein ^ am Anfang der Klammer negiert die Auswahl.

Beispiele
[a-z]Alle Kleinbuchstaben von a bis z.
[^0-9]Jedes Zeichen, das KEINE Ziffer ist.

5. Metazeichen

Metazeichen bilden den Kern der regulären Ausdrücke.

5.1. Zeilentrenner

^Zeilenanfang
$Zeilenende
.Jedes Zeichen (außer Zeilentrenner, falls Modifikator s aus)

5.2. Vordefinierte Klassen

\wAlphanumerische Zeichen und "_" (entspricht [a-zA-Z0-9_])
\dZiffern
\sLeerraum (Space, Tab, etc.)

5.4. Iteratoren (Quantifizierer)

*0-mal oder öfter ("gierig")
+1-mal oder öfter ("gierig")
?0-mal oder 1-mal ("gierig")
{n,m}Mindestens n-mal, maximal m-mal.

Ein angehängtes ? (z. B. *?) macht den Quantifizierer "genügsam" (non-greedy), d. h. er nimmt so wenig Text wie möglich.

5.6. Unterausdrücke (Gruppen)

Klammern ( ... ) definieren Gruppen. Diese können im "Ersetzen"-Feld mit $1, $2 usw. referenziert werden.

Beispiel: Datum 21.01.2018 in 2018.01.21 umwandeln:
Suche: (\d{2})\.(\d{2})\.(\d{4})
Ersetzen: $3.$2.$1

6. Lookaround-Assertionen

Bedingungen, die prüfen, was vor oder nach einem Text steht, ohne diesen Teil in das Suchergebnis aufzunehmen.

10. Modifikatoren

Beeinflussen das Verhalten des gesamten Ausdrucks oder von Teilen davon (z. B. (?i) für ignorieren der Groß-/Kleinschreibung).

i
Ignoriert Groß-/Kleinschreibung.
m
Mehrzeilen-Modus (^ und $ gelten für jede Zeile).
s
Einzeilen-Modus (. findet auch Zeilenumbrüche).
x
Erlaubt Leerzeichen und Kommentare im RegEx zur besseren Lesbarkeit.
Gültiges HTML 4.0 Transitional CSS gültig!