Reguläre Ausdrücke
Zur Navigation springen
Zur Suche springen
Spezialzeichen
A-z | Ein einzelner Buchstabe passt auf sich selbst |
. | Ein Punkt passt auf jedes Zeichen außer auf das Zeilenende |
* | Das dem Operator * vorangehende Muster kann 0 oder öfter vorkommen |
^ | (Caret) passt auf den Zeilenanfang |
$ | Passt auf das Zeilenende |
\ | Das folgende Sonderzeichen wird entwertet |
[...] | Passt auf "genau" eins in [...] angebenen Zeichen entwertet RegEx Sonderzeichen außer ^ |
[^...] | Passt auf "genau" ein Zeichen welches nicht in [...] angebenen ist entwertet RegEx Sonderzeichen außer ^ |
\< | Passt auf den Wortanfang |
\> | Passt auf das Wortende |
\+ | Das dem Operator \+ vorangehende Muster kann 1 oder öfter vorkommen |
& | Setzt das gefunden Suchmuster ein |
\(...\) | Speichert den Text auf den das Suchmuster passt zur späteren Verwendung |
\n | Setzt das vorangehende, mit \(...\) Gefundene wieder ein |
(...) | Gruppiert Auswahlmöglichkeiten |
| | Trennt Auswahlmöglichkeiten |
\b | Passt auf den Anfang oder das Ende eines Wortes |
\B | Symbolisiert den Raum innerhalb eines Wortes |
\w | Passt auf alle alphanumerischen Zeichen [A-Za-z0-9] |
\W | Passt auf alle nichtalphanumerischen Zeichen [^A-Za-z0-9] |
\d | Passt auf alle numerischen Zeichen = [0-9] Nur in Perl RegEx! |
\D | Passt auf alle nichtnumerischen Zeichen = [0-9] Nur in Perl RegEx! |
Die Rangfolge der Operatoren(von der höchsten zur niedrigsten)
- (, ), ?, *, + | .
Die anderen Operatoren sind mit den anderen Buchstaben gleichrangig.
- Beispiele
Suchmuster Passt auf ^Tuxer Tuxer am Zeilenanfang [tT]uxer Tuxer oder tuxer 80[23]?86 8086, 80286 oder 80386
grep
- Mit grep ist es möglich, in Dateien nach regulären Ausdrücken zu suchen.
- Wenn eine Übereinstimmung gefunden wird, wird die komplette Zeile auf die Standardausgabe geschrieben.
- grep kann auch von STDIN lesen.
- Es ist empfehlenswert das Suchmuster in Anführungszeichen zu schreiben.
Beispiele
- vim text
quatsch quatsch quatsch wichtig quatsch
- grep "wichtig" text
wichtig
- grep "xinux" /etc/passwd
xinux:x:1000:1000:xinux,,,:/home/xinux:/bin/bash
- grep "1[0-9][0-9][0-9]" /etc/passwd
xinux:x:1000:1000:xinux,,,:/home/xinux:/bin/bash
- grep "x\w\+x" /etc/passwd
xinux:x:1000:1000:xinux,,,:/home/xinux:/bin/bash
- grep "^root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
- ls -l /etc | grep shadow
-rw-r----- 1 root shadow 1003 Mär 19 20:18 gshadow -rw-r----- 1 root shadow 995 Jan 16 19:30 gshadow- -rw-r----- 1 root shadow 1615 Mär 19 20:18 shadow -rw-r----- 1 root shadow 1615 Mär 19 20:18 shadow-
- Echte E-Mail-Adresse RegEx
- vim mail
Max.Mustermann@Beispiel.de Hallo@Welt.de Irgendwas Anderes Böse Adresse@+++.de DieHier@GehtWieder.de DieHier@@GehtWiederNicht.de Auch01927Zahlen@SindErlaubt.com Lokaler_Teil_Erlaubt_Unterstriche@Tests.com Tests@Globaler_Teile_Aber_nicht.com
- grep -P "[\w.%+-]+@[\w.-][^_]+\.[a-z]{2,}" mail
Max.Mustermann@Beispiel.de Hallo@Welt.de DieHier@GehtWieder.de Auch01927Zahlen@SindErlaubt.com Lokaler_Teil_Erlaubt_Unterstriche@Tests.com
- [\w.%+-]+
- Dieser Teil entspricht einem oder mehreren alphanumerischen Zeichen (\w), Punkten (.), Prozentzeichen (%), Pluszeichen (+) oder Minuszeichen (-).
- Dies ist der Teil vor dem "@"-Symbol in der E-Mail-Adresse, also der Benutzername.
- @
- Dies ist einfach das "@"-Symbol, das in einer gültigen E-Mail-Adresse vorhanden sein muss.
- [\w.-]
- Dieser Teil entspricht einem alphanumerischen Zeichen (\w), einem Punkt (.) oder einem Minuszeichen (-).
- Dies ist der erste Teil der Domain nach dem "@"-Symbol.
- [^_]+
- Hier steht [^_], was bedeutet, dass ein Unterstrich (_) in diesem Teil nicht erlaubt ist.
- Dieser Teil entspricht einem oder mehreren Zeichen, die nicht der Unterstrich sind.
- Dies ist der zweite Teil der Domain.
- \.
- Dies entspricht einem Punkt (.), der das Trennzeichen zwischen dem Domänennamen und der Top-Level-Domain (TLD) markiert.
- [a-z]{2,}
- Dies entspricht zwei oder mehr kleinen Buchstaben (von a bis z), was die TLD repräsentiert.
Mehr Optionen für grep
-c meldet nur die Gesamtzahl der Fundstellen -v zeigt nur Zeilen, die »Ausdruck« nicht enthalten -i ignoriert Groß- und Kleinschreibung -l meldet nur Dateinamen mit Fundstellen -n listet Zeilennummern zu jeder Fundstelle -f Dateiname »Dateiname« enthält die Such-Ausdrücke -E ist ein erweiterter regulärer Ausdruck (egrep) -F (Muster, Ausdruck) ist ein Muster (String) (fgrep) -b listet auch die Position der Fundstellen -A Anzahl Anzahl von Zeilen werden nach der Fundstelle ausgegeben -B Anzahl Anzahl von Zeilen werden vor der Fundstelle ausgegeben -r Durchsucht Verzeichnisse rekursiv