Reguläre Ausdrücke: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 62: | Zeile 62: | ||
|Passt auf alle nichtalphanumerischen Zeichen [^A-Za-z0-9] | |Passt auf alle nichtalphanumerischen Zeichen [^A-Za-z0-9] | ||
|- | |- | ||
− | |\d | + | |\d '''Nur in Perl RegEx! |
|Passt auf alle numerischen Zeichen = [0-9] | |Passt auf alle numerischen Zeichen = [0-9] | ||
|- | |- | ||
− | |\D | + | |\D '''Nur in Perl RegEx!''' |
|Passt auf alle nichtnumerischen Zeichen = [0-9] | |Passt auf alle nichtnumerischen Zeichen = [0-9] | ||
|} | |} |
Version vom 21. März 2023, 22:31 Uhr
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 |
[^...] | Passt auf "genau" ein Zeichen welches nicht in [...] angebenen ist |
\< | 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 Nur in Perl RegEx! | Passt auf alle numerischen Zeichen = [0-9] |
\D Nur in Perl RegEx! | Passt auf alle nichtnumerischen Zeichen = [0-9] |
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.
- Mit pgrep kann man auch laufende filtern
- Beispiel
root@zero:~# cat text quatsch quatsch quatsch wichtig quatsch root@zero:~# grep wichtig text wichtig root@zero:~# -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
- Valid E-Mail regex
root@zero:~# cat 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 root@zero:~# 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