Reguläre Ausdrücke (regular expression oder RegExp) bzw. Zeichenketten, können als Filterkriterien in Textsuchen verwendet werden. Der Text wird dabei mit dem "Muster" des regulären Ausdrucks abgeglichen. Somit kann man etwas suchen und finden, auch dann wenn man nicht mehr die genaue Schreibweise kennt.
Unter
Linux kann man Hilfe von
grep Dateien nach bestimmten Textzeichen durchsuchen. Unter
Windows wäre die Verwendung mit Hilfe von
grepWin (Regular expression search and replace for Windows) oder
Select-String möglich.
Eine einfache Suche ist mit dem folgenden Befehl möglich:
Der Parameter
-E von grep definiert einen Regulären Ausdruck und die runden Klammern als Sonderzeichen. Mit dem Parameter
-i ignoriert grep zusätzlich Groß- und Kleinschreibung.
Der
| Strich (Pipe) steht für ein logisches "oder", somit wird nach dem "h" nach "h
emel" und "h
amel" gesucht.
- grep -E -i 'h(e|a)mel' \ ~/*
Möchte man nach mehreren Zeichen inkl. Umlauten suchen, muss man die Zeichengruppe
[] inkl. dem Quantifer
+ verwenden. Jetzt wird nach einem oder mehreren Zeichen gesucht, die innerhalb der
[] vorkommen.
- grep -E -i 'h[\0-9A-F]+mel' \ ~/*
Weitere Beispiele
- [he]+ "h", "e", "hh", "hheeh" usw.
- [0-6]{2,5} zwei bis fünf Ziffern von 0-6 in Folge, z. B. "16" oder "23456", jedoch nicht "7", "0.1" oder "1bca2“
- h.{0,2}mel beliebiges Zeichen, min 0mal, max 2mal vorkommen, z.B. hemel, haemel, hmel
Wichtige Zeichen
- . einzelnes Zeichen
- (..) Gruppe von Elementen
- ..|.. Oder Verknüpfung
- ^ findet den Anfang einer Zeile
- $ findet das Ende einer Zeile
Wichtige Zeichengruppen
- [eam] ein Zeichen "e", "a" oder "m"
- [0-9A-F] ein großer beliebiger Buchstabe oder eine beliebige Ziffer
- [A-Za-z0-9] ein beliebiger Buchstabe oder eine beliebige Ziffer
Vordefinierte Zeichenklassen
- \d Ziffer [0-9]
- \D keine Ziffer [^\d] bzw. [^0-9]
- \w Buchstabe [a-zA-Z_0-9]
- \W weder Buchstabe noch Zahl noch Unterstrich [^\w]
- \s whitespace Leerzeichen und Steuerzeichen \f, \n, \r, \t und \v
- \S kein whitespace
Quantifier
- ? optional, kommt null- oder einmal vor {0,1}
- * beliebig oft oder auch keinmalt {0,}
- + mindestens einmal oder auch mehrfach {1,}
- {n} muss exakt n-mal vorkommen {n,n}
- {n,m} muss mindestens n-mal und darf maximal m-mal vorkommen
Unter debuggex.com kann man die erstellte regular expression testen und verstehen.