RegEx/Anwendungen: Unterschied zwischen den Versionen
Zeile 89: | Zeile 89: | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
| | <tt>'''Haus'''</tt> | | | <tt>'''Haus'''</tt> | ||
| | Die Zeichenfolge "Haus" | | | Die Zeichenfolge "Haus" | ||
|- | |- | ||
| | <tt>'''^Haus'''</tt> | | | <tt>'''^Haus'''</tt> | ||
| | "Haus" am Zeilenanfang | | | "Haus" am Zeilenanfang | ||
|- | |- | ||
| | <tt>'''Haus$'''</tt> | | | <tt>'''Haus$'''</tt> | ||
| | "Haus" am Zeilenende | | | "Haus" am Zeilenende | ||
|- | |- | ||
| | <tt>'''^Haus$'''</tt> | | | <tt>'''^Haus$'''</tt> | ||
| | "Haus" als einziges Wort in einer Zeile | | | "Haus" als einziges Wort in einer Zeile | ||
|- | |- | ||
| | <tt>'''[Hh]aus'''</tt> | | | <tt>'''[Hh]aus'''</tt> | ||
| | "Haus" oder "haus" | | | "Haus" oder "haus" | ||
|- | |- | ||
| | <tt>'''Ha[unl]s'''</tt> | | | <tt>'''Ha[unl]s'''</tt> | ||
| | "Haus", "Hals" oder "Hans" | | | "Haus", "Hals" oder "Hans" | ||
|- | |- | ||
| | <tt>'''[^HML]aus'''</tt> | | | <tt>'''[^HML]aus'''</tt> | ||
| | Weder "Haus", noch "Maus", noch "Laus", dafür aber andere Zeichenfolgen, welche "aus" enthalten | | | Weder "Haus", noch "Maus", noch "Laus", dafür aber andere Zeichenfolgen, welche "aus" enthalten | ||
|- | |- | ||
| | <tt>'''Ha.s'''</tt> | | | <tt>'''Ha.s'''</tt> | ||
| | Der dritte Buchstabe ist ein beliebiges Zeichen | | | Der dritte Buchstabe ist ein beliebiges Zeichen | ||
|- | |- | ||
| | <tt>'''^...$'''</tt> | | | <tt>'''^...$'''</tt> | ||
| | Jede Zeile mit genau drei Zeichen | | | Jede Zeile mit genau drei Zeichen | ||
|- | |- | ||
| | <tt>'''^\.'''</tt> | | | <tt>'''^\.'''</tt> | ||
| | Jede Zeile, die mit einem Punkt beginnt | | | Jede Zeile, die mit einem Punkt beginnt | ||
|- | |- | ||
| | <tt>'''^\.[a-z][a-z]'''</tt> | | | <tt>'''^\.[a-z][a-z]'''</tt> | ||
| | Jede Zeile, die mit einem Punkt und zwei Kleinbuchstaben beginnt | | | Jede Zeile, die mit einem Punkt und zwei Kleinbuchstaben beginnt | ||
|- | |- | ||
| | <tt>'''^\.[a-z]\{2\}'''</tt> | | | <tt>'''^\.[a-z]\{2\}'''</tt> | ||
| | Wie oben, jedoch nur in grep und sed zulässig | | | Wie oben, jedoch nur in grep und sed zulässig | ||
|- | |- | ||
| | <tt>'''^[^.]'''</tt> | | | <tt>'''^[^.]'''</tt> | ||
| | Jede Zeile, die nicht mit einem Punkt beginnt | | | Jede Zeile, die nicht mit einem Punkt beginnt | ||
|- | |- | ||
| | <tt>'''Fehler*'''</tt> | | | <tt>'''Fehler*'''</tt> | ||
| | "Fehle"(!), "Fehler", "Fehlers", etc | | | "Fehle"(!), "Fehler", "Fehlers", etc | ||
|- | |- | ||
| | <tt>'''"Wort"'''</tt> | | | <tt>'''"Wort"'''</tt> | ||
| | Ein Wort in Anführunszeichen | | | Ein Wort in Anführunszeichen | ||
|- | |- | ||
| | <tt>'''"*Wort"*'''</tt> | | | <tt>'''"*Wort"*'''</tt> | ||
| | Ein Wort mit beliebig vielen (auch keinen) Anführungszeichen | | | Ein Wort mit beliebig vielen (auch keinen) Anführungszeichen | ||
|- | |- | ||
| | <tt>'''[A-Z][A-Z]*'''</tt> | | | <tt>'''[A-Z][A-Z]*'''</tt> | ||
| | Ein oder mehrere Großbuchstaben. | | | Ein oder mehrere Großbuchstaben. | ||
|- | |- | ||
| | <tt>'''[A-Z]+'''</tt> | | | <tt>'''[A-Z]+'''</tt> | ||
| | Wie oben, jedoch nur in egrep und awk zulässig | | | Wie oben, jedoch nur in egrep und awk zulässig | ||
|- | |- | ||
| | <tt>'''[A-Z].*'''</tt> | | | <tt>'''[A-Z].*'''</tt> | ||
| | Ein Großbuchstabe, gefolgt von keinem oder beliebig vielen Zeichen | | | Ein Großbuchstabe, gefolgt von keinem oder beliebig vielen Zeichen | ||
|- | |- | ||
| | <tt>'''[A-Z]*'''</tt> | | | <tt>'''[A-Z]*'''</tt> | ||
| | Kein, ein oder mehrere Großbuchstaben | | | Kein, ein oder mehrere Großbuchstaben | ||
|- | |- | ||
| | <tt>'''[a-zA-Z]'''</tt> | | | <tt>'''[a-zA-Z]'''</tt> | ||
| | Ein Buchstabe | | | Ein Buchstabe | ||
|- | |- | ||
| | <tt>'''[^0-9a-zA-Z]'''</tt> | | | <tt>'''[^0-9a-zA-Z]'''</tt> | ||
| | Symbole (weder Buchstaben noch Zahlen) | | | Symbole (weder Buchstaben noch Zahlen) | ||
|- | |- | ||
| | <tt>'''[0-9a-zA-Z]'''</tt> | | | <tt>'''[0-9a-zA-Z]'''</tt> |
Version vom 11. April 2023, 11:45 Uhr
Aufgabe | Suchen | Ersetzen | Beschreibung |
---|---|---|---|
Absätze aufbrechen | \. ([a-zA-Z]) | . \n\* \1 | |
Leerzeilen in Aufzählungen entfernen | \n\n([a-z]) | \n* \1 | |
Alleinstehende Aufzählungspunkte entfernen | ^\* $ | ||
Leere Absätze löschen | \n\n\n | \n\n | |
Zeilenwechsel nach Überschriften entfernen | =\n\n | =\n | |
style-Attribute entfernen | style=".*;" | ||
HTML-Kontainer | \<div.*\>(.*)\</div\> | \1 | |
HTML-Kontainer | \<tt\>(.*)\</tt\> | \1 | |
HTML-Kontainer | \<span\>(.*)\</span\> | \1 | |
HTML-Kontainer | \</*nowiki\> | ||
HTML-br | \<br/\> | \n | |
Anker entfernen | \{\{.*\}\} | ||
Referenzen entfernen | \<ref\>.*\</ref\> | ||
Referenzen entfernen | <ref name=".*" /> | ||
Tabelle formatieren | \{\| | \{\| class="wikitable sortable options" | |
Non Braking Spaces entfernen | | ||
Images entfernen | \[\[Image:.*\]\] | ||
Images durch alt-Text ersetzen | alt="(.*)"\]\] | \1 | |
Führende Leerzeichen entfernen | ^ * | ||
Absätze zusammenführen | ([a-zäüöß,--])\n([a-zäüöß]) | \1 \2 | |
Manpage Überschriften formatieren | ^([[:upper:]]{2,}[ /_]?[[:upper:] ]*)$ | == \1 == | |
Manpage Optionen in erste Tabellenzelle | (^-[A-Za-z0-9] ?[A-Za-z_\[\]:]*) | \1 | |
TODOs auskommentieren | ^^('''TODO: '''.*$) | ^<!-- \1 --> | |
Spalten tauschen (Erste/Zweite) | (.*) \|\|(.*)$ | |\2 |\1 | |
Führende Nummern in Wiki-Überschriften entfernen | = ([0-9]*\.)* ([A-Z]){1} | = \2 | |
Leerzeichen am Zeilenende ersetzen | ([^ ]) $ | \1 |
- Abkürzungen
Gruppe | Suchen | Ersetzen |
---|---|---|
Abkürzungen | bzw\. | beziehungsweise |
Abkürzungen | u\.U\. | gegebenenfalls |
Abkürzungen | d\.h\. | das bedeutet, |
Abkürzungen | z\.B\. | etwa |
Abkürzungen | z\. B\. | etwa |
Abkürzungen | u\.a\. | unter anderem |
Abkürzungen | ggf\. | gegebenenfalls |
Abkürzungen | usw\. | und so weiter |
- Test
Aufgabe | Suchen | Ersetzen |
---|---|---|
TEST | ^-(.*), --(.*)\n | | -\1 || --\2 |
Einfache Ausdrücke
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)