RegEx/Anwendungen

Aus Foxwiki
Version vom 30. März 2023, 11:44 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Regular Expression/Übungen und Beispiele = Übungen und Beispiele = == Einfache Übungen == {| class="wikitable sortable" |- | | # | | <tt>'''Haus'''</tt> | | Die Zeichenfolge "Haus" |- | | # | | <tt>'''^Haus'''</tt> | | "Haus" am Zeilenanfang |- | | # | | <tt>'''Haus$'''</tt> | | "Haus" am Zeilenende |- | | # | | <tt>'''^Haus$'''</tt> | | "Haus" als einziges Wort in einer Zeile |- | | # | | <tt>'''[Hh]aus'''</tt> | | "Haus" oder…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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)