Klasse | Ausdruck | Bedeutung |
---|---|---|
Zeichen | [abc] | alle Zeichen innerhalb [] |
[^abc] | alle Zeichen außerhalb [] | |
. | jedes beliebige Zeichen | |
\w | Wortbestandteil (Groß- und Kleinbuchstaben, Unterstrich) | |
\W | negierter Wortbestandteil (Ziffern, Sonderzeichen, Leerraum) | |
\s | Leerraum (Leerzeichen, Tabulator, Carriage Return) | |
\S | Alles außer Leerraum | |
\S | Alles 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 \2 | Auflösungen der Rückverweise |
Sehr wichtig: Die Interpretation von Zeichen ist
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".