RegEx/Anwendungen
Regular Expression/Übungen und Beispiele
Übungen und Beispiele
Einfache Übungen
# | Haus | Die Zeichenfolge "Haus" |
# | ^Haus | "Haus" am Zeilenanfang |
# | Haus$ | "Haus" am Zeilenende |
# | ^Haus$ | "Haus" als einziges Wort in einer Zeile |
# | [Hh]aus | "Haus" oder "haus" |
# | Ha[unl]s | "Haus", "Hals" oder "Hans" |
# | [^HML]aus | Weder "Haus", noch "Maus", noch "Laus", dafür aber andere Zeichenfolgen, welche "aus" enthalten |
# | Ha.s | Der dritte Buchstabe ist ein beliebiges Zeichen |
# | ^...$ | Jede Zeile mit genau drei Zeichen |
# | ^\. | Jede Zeile, die mit einem Punkt beginnt |
# | ^\.[a-z][a-z] | Jede Zeile, die mit einem Punkt und zwei Kleinbuchstaben beginnt |
# | ^\.[a-z]\{2\} | Wie oben, jedoch nur in grep und sed zulässig |
# | ^[^.] | Jede Zeile, die nicht mit einem Punkt beginnt |
# | Fehler* | "Fehle"(!), "Fehler", "Fehlers", etc |
# | "Wort" | Ein Wort in Anführunszeichen |
# | "*Wort"* | Ein Wort mit beliebig vielen (auch keinen) Anführungszeichen |
# | [A-Z][A-Z]* | Ein oder mehrere Großbuchstaben. |
# | [A-Z]+ | Wie oben, jedoch nur in egrep und awk zulässig |
# | [A-Z].* | Ein Großbuchstabe, gefolgt von keinem oder beliebig vielen Zeichen |
# | [A-Z]* | Kein, ein oder mehrere Großbuchstaben |
# | [a-zA-Z] | Ein Buchstabe |
# | [^0-9a-zA-Z] | Symbole (weder Buchstaben noch Zahlen) |
# | [0-9a-zA-Z] | Jedes alphanumerische Zeichen |
Beispiele für egrep- oder awk-Muster
[567] * Eine der Zahlen 5, 6 oder 7
fuenf|sechs|sieben * Eines der Worte fünf, sechs oder sieben
80[234]?86> * "8086", "80286", "80386", "80486"
F(ahr|lug)zeug * "Fahrzeug" oder "Flugzeug"
Beispiele für vi-Muster
\<The * Wörter wie "Theater" oder "Thema"
ung\> * Wörter wie "Teilung" oder "Endung"
\<Wort\> * Das Wort "Wort"
Beispiele für sed- oder grep-Muster
0\{5,\}* Fünf oder mehr Nullen in Folge
[0-9]-[0-9]\{3\}-[0-9]\{5\}-[0-9X]* ISBN-Nummern in der Form n-nnn-nnnnn-n, das letzte Zeichen kann auch ein X sein
VIM-Beispiele
Leerzeichen wurden durch _ Tabulatoren durch TAB eretzt. Ex-Befehle werden mit Doppelpunkt eingeleitet.# s/.*/( & )/
Wiederholt die ganze Zeile, fügt aber Klammern hinzu
s/.*/mv & &.old/
Formt eine Wortliste (ein Wort pro Zeile) zu mv-Befehlen um
/^$/d
Löscht Leerzeilen
/^[_TAB]*$/d
Löscht Leerzeilen und Zeilen, die nur aus Leerzeichen oder Tabulatoren bestehen
/ */ /g
Wandelt ein oder mehrere Leerzeichen in ein Leerzeichen um
:s/[0-9]/Element &:/
Wandelt (in der aktuellen Zeile) eine Zahl in ein Label für ein Element um
:s
Wiederholt die Substitution beim ersten Vorkommen
:&
Wie oben
:sg
Wie oben, aber für alle Vorkommen in einer Zeile
:&g
Wie oben
:%&g
Wiederholt die Substitution im ganzen Puffer
:.,$s/Wort/\U&/g
Wandelt von der aktuellen bis zur letzten Zeile das Wort Wort in Großschreibung um
:%s/.*/\L&/
Wandelt die gesamte Datei in Kleinschreibung um
:s/\<./\u&/g
Wandelt den ersten Buchstaben jedes Wortes in der aktuellen Zeile in Großschreibung um
:%s/ja/nein/g
Ersetzt das Wort ja durch nein
:%s/Ja/~/g
Ersetzt global ein anderes Wort (Ja) durch nein (Wiederverwendung des vorherigen Ersatzmusters)