Reguläre Ausdrücke

Nun kommt ein Thema, was mich persönlich jedes mal aufs neue stört: reguläre Ausdrücke (regular expressions – RegEx).

Regex sind Suchmuster, welche verwendet werden können um z.B. Dateien und oder bestimmte/ähnliche Strings in Dateien zu finden.

Anbei eine Tabelle mit den wichtigsten und häufig verwendeten regulären Ausdrücken:


ZeichenBeschreibung
[abc]eines der Zeichen a, b oder c
[0-6]eines der Zeichen 0 bis 6. Der Bindestrich dient dabei als Indikator für einen Bereich
[a-zA-Z0-9]ein beliebiger Buchstabe (egal ob groß oder klein) oder eine Ziffer
[^abc]ein beliebiges Zeichen außer a, b oder c
[a-z-], [-a-z], [a-z\-0-9]Auswahl enthält Bindestrich
\d(digit) - eine Ziffer - entspricht: [0-9]
\D(no digit) - ein Zeichen, dass keine Ziffer ist - entspricht [^\d]
\w(word) - ein Buchstabe, eine Ziffer oder ein Unterstrich (auch Umlaute) - entspricht: [a-zA-Z0-9_]
\W(no word) - ein Zeichen, dass weder ein Buchstabe, Ziffer noch Unterstrich ist - entspricht: [^\w]
\s(whitespace) - Leerzeichen und Klasse der Steuerzeichen ( \f, \n, \r, \t, \v
\S(no whitespace) - Zeichen, dass kein Whitespace ist - entspricht: [^\s]
\hebt die Funktion des nächsten Zeichens auf (s. Bindestrich Zeile 3)
\bleere Zeichenkette am Wortanfang oder Wortende
\Bleere Zeichenkette, die weder am Anfang noch am Ende des Wortes stehen
\<leere Zeichenkette am Wortanfang
\>leere Zeichenkette am Wortende
\nZeilenumbruch (UNIX)
\rZeilenumbruch (Mac)
\r\nZeilenumbruch (Windows)
.exakt ein beliebiges Zeichen
?vorherige Ausdruck ist optional (kommt null oder einmal vor) - entspricht {0,1}
+vorherige Ausdruck muss mindestens einmal vorkommen, darf aber auch mehrfach auftreten - entspricht {1,}
*vorherige Ausdruck darf beliebig oft vorkommen - entspricht {0,}
{n}vorherige Ausdruck muss exakt n-mal vorkommen - entspricht {n,n}
{min,}vorherige Ausdruck muss mindestens min-mal auftreten, darf aber auch öfters
{min,max}vorherige Ausdruck muss mindestens min-mal und maximal max-mal vorkommen
{0,max}vorherige Ausdruck darf maximal max-mal vorkommen
^Zeilenanfang (nicht verwechseln mit [^abc] - Negierung)
$Zeilenende


Man kann die Suchmuster wie folgt verwenden:

# durchsucht die Datei nach dem Suchmuster
$ grep -e suchmuster Datei

# Sucht (s) in der Datei nach dem Suchmuster und ersetzt alle Vorkommen (g) mit dem Replacestring
$ sed 's/suchmuster/replacestring/g' datei

In den weiteren Beiträgen werden sicherlich noch Anwendungsbeispiele anfallen 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.