Reguläre Ausdrücke: Syntax in egrep

KlasseAusdruckBedeutung
Zeichen[abc]alle Zeichen innerhalb []
[^abc]alle Zeichen außerhalb []
.jedes beliebige Zeichen
\wWortbestandteil (Groß- und Kleinbuchstaben, Unterstrich)
\Wnegierter Wortbestandteil (Ziffern, Sonderzeichen, Leerraum)
\sLeerraum (Leerzeichen, Tabulator, Carriage Return)
\SAlles außer Leerraum
\SAlles außer Leerraum
Zählen?nullmal oder einmal
+beliebig häufig, mindestens einmal
*beliebig häufig, mindestens nullmal
{m,}beliebig häufig, mindestens m-mal
{,n}beliebig häufig, höchstens n-mal
{m,n}mindestens m-, höchstens n-mal
Positionen^Beginn einer Zeile
$Ende einer Zeile
\<Beginn eines Wortes
\>Ende eines Wortes
Komplexeres|Alternativen
()Gruppierungen, Rückverweise
\1 \2Auflösungen der Rückverweise

Sehr wichtig: Die Interpretation von Zeichen ist kontextabhängig, insbesondere sind Zeichen innerhalb von []en immer eher direkter zu interpretieren als außerhalb.

Beispiel: [.,!?] paßt auf Punkt, Komma, Ruf- oder Fragezeichen, nicht auf "ein beliebiges Zeichen", Komma, oder "null oder ein Rufzeichen".

Eine beliebte Falle ist die Notwendigkeit, bei der direkten Eingabe in bash alle möglichen Sonderzeichen mit einem vorangestellten \ auszuzeichnen, den Backslash eingeschlossen. \<H(allo|i)\> wird so zu \\\<H(allo|i)\\\> . Würde man statt egrep grep verwenden, müßte man die Klammern und den senkrechten Strich auch noch "escapen".


Zurück Weiter
Johannes Hüsing