Reguläre Ausdrücke: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
{| Border=1 Cellpadding=2
+
= Spezialzeichen =
|c
 
|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
 
|-
 
|<nowiki>|</nowiki>
 
|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]
 
|-
 
|\D
 
|Passt auf alle nichtnumerischen Zeichen = [0-9]
 
|}
 
  
Die Rangfolge der Operatoren(von der höchsten zur niedrigsten)
+
{| Border=1 Cellpadding=2 |c |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 |- |<br />
:(, ), ?, *, + | .
+
|Das folgende Sonderzeichen wird entwertet |- |[…] |Passt auf “genau” eins in […] angebenen Zeichen |- |[^...] |Passt auf “genau” ein Zeichen welches nicht in […] angebenen ist |- |&lt; |Passt auf den Wortanfang |- |&gt; |Passt auf das Wortende |- |+ |Das dem Operator + vorangehende Muster kann 1 oder öfter vorkommen |- |&amp; |Setzt das gefunden Suchmuster ein |- |(…) |Speichert den Text auf den das Suchmuster passt zur späteren Verwendung |- | |Setzt das vorangehende, mit (…) Gefundene wieder ein |- |(…) |Gruppiert Auswahlmöglichkeiten |- |<nowiki>|</nowiki> |Trennt Auswahlmöglichkeiten |- |Passt auf den Anfang oder das Ende eines Wortes |- | |Symbolisiert den Raum innerhalb eines Wortes |- | |Passt auf alle alphanumerischen Zeichen [A-Za-z0-9] |- | |Passt auf alle nichtalphanumerischen Zeichen [^A-Za-z0-9] |- |Passt auf alle numerischen Zeichen = [0-9] |- | |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.
 
Die anderen Operatoren sind mit den anderen Buchstaben gleichrangig.
  
===Beispiel zum Suchen===
+
;Beispiele
  
 
  Suchmuster              Passt auf
 
  Suchmuster              Passt auf
Zeile 78: Zeile 14:
 
  [tT]uxer                Tuxer oder tuxer
 
  [tT]uxer                Tuxer oder tuxer
 
  80[23]?86                8086, 80286 oder 80386
 
  80[23]?86                8086, 80286 oder 80386
 +
= grep =
  
===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, sich anzugwöhnen ,das Suchmuster in Anführungszeichen zu schreiben. Es gibt 3 Arten fgrep = fastgrep , grep und egrep
  
Mit grep ist es möglich, in Dateien nach regulären Ausdrücken zu suchen. Wenn
+
;Beispiel:
eine Übereinstimmung gefunden wird, wird die komplette Zeile auf die
 
Standardausgabe geschrieben. grep kann auch von STDIN lesen.Es ist
 
empfehlenswert, sich anzugwöhnen ,das Suchmuster in Anführungszeichen zu
 
schreiben. Es gibt 3 Arten fgrep = fastgrep , grep und egrep
 
 
 
Beispiel:
 
  
 
  root@zero:~# cat text
 
  root@zero:~# cat text
Zeile 98: Zeile 29:
 
  wichtig
 
  wichtig
 
  root@zero:~#  
 
  root@zero:~#  
 
+
 
  -c                  meldet nur die Gesamtzahl der Fundstellen
 
  -c                  meldet nur die Gesamtzahl der Fundstellen
 
  -v                  zeigt nur Zeilen, die »Ausdruck« nicht enthalten
 
  -v                  zeigt nur Zeilen, die »Ausdruck« nicht enthalten
Zeile 111: Zeile 42:
 
  -B    Anzahl        Anzahl von Zeilen werden vor der Fundstelle ausgegeben
 
  -B    Anzahl        Anzahl von Zeilen werden vor der Fundstelle ausgegeben
 
  -r                  Durchsucht Verzeichnisse rekursiv
 
  -r                  Durchsucht Verzeichnisse rekursiv
 
 
;Valid E-Mail regex
 
;Valid E-Mail regex
<pre>
 
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
 
 
</pre>
 
  
 +
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
  
*links
+
= Links =
https://www.danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/
 
  
https://en.wikipedia.org/wiki/Regular_expression
+
* https://www.danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/
 +
* https://en.wikipedia.org/wiki/Regular_expression

Version vom 2. März 2023, 15:59 Uhr

Spezialzeichen

- |[…] |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 |- | |Setzt das vorangehende, mit (…) Gefundene wieder ein |- |(…) |Gruppiert Auswahlmöglichkeiten |- || |Trennt Auswahlmöglichkeiten |- |Passt auf den Anfang oder das Ende eines Wortes |- | |Symbolisiert den Raum innerhalb eines Wortes |- | |Passt auf alle alphanumerischen Zeichen [A-Za-z0-9] |- | |Passt auf alle nichtalphanumerischen Zeichen [^A-Za-z0-9] |- |Passt auf alle numerischen Zeichen = [0-9] |- | |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, sich anzugwöhnen ,das Suchmuster in Anführungszeichen zu schreiben. Es gibt 3 Arten fgrep = fastgrep , grep und egrep

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

Links