RegEx/Anwendungen: Unterschied zwischen den Versionen
Erscheinungsbild
(46 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''RegEx/Anwendungen''' - Beispiele | |||
== Einfache Ausdrücke == | |||
{| class="wikitable sortable options" | {| class="wikitable sortable options" | ||
|- | |||
| | 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 == | |||
{| class="wikitable sortable options gnu" | |||
|- | |- | ||
! Aufgabe !! Suchen !! Ersetzen !! Beschreibung | ! Aufgabe !! Suchen !! Ersetzen !! Beschreibung | ||
|- | |||
| Absätze zusammenführen || ([a-zäüöß,-])\n([a-zäüöß]) || \1 \2|| | |||
|- | |- | ||
| Absätze aufbrechen || \. ([a-zA-Z]) || . \n\* \1|| | | Absätze aufbrechen || \. ([a-zA-Z]) || . \n\* \1|| | ||
|- | |- | ||
| | | Leerzeilen in Aufzählungen || \n\n([a-z]) || \n* \1|| | ||
|- | |- | ||
| Alleinstehende Aufzählungspunkte || ^\* $ |||| | |||
| Alleinstehende Aufzählungspunkte | |||
|- | |- | ||
| Leere Absätze löschen || \n\n\n || \n\n|| | | Leere Absätze löschen || \n\n\n || \n\n|| | ||
|- | |- | ||
| Zeilenwechsel nach Überschriften | | Zeilenwechsel nach Überschriften || =\n\n || =\n|| | ||
|- | |- | ||
| style-Attribute | | style-Attribute || style=".*;" |||| | ||
|- | |- | ||
| HTML-Kontainer || \<div.*\>(.*)\</div\> || \1|| | | HTML-Kontainer || \<div.*\>(.*)\</div\> || \1|| | ||
Zeile 27: | Zeile 104: | ||
| HTML-br || <nowiki>\<br/\></nowiki> || \n|| | | HTML-br || <nowiki>\<br/\></nowiki> || \n|| | ||
|- | |- | ||
| Anker | | Anker || \{\{anchor.*\}\} |||| | ||
|- | |||
| Anker || \{\{anker.*\}\} |||| | |||
|- | |||
| Referenzen || \<ref\>.*\</ref\> |||| | |||
|- | |- | ||
| Referenzen | | Referenzen || <nowiki><ref name=.*</ref></nowiki> |||| | ||
|- | |- | ||
| Referenzen | | Referenzen || <nowiki><ref name=.*/></nowiki> |||| | ||
|- | |- | ||
| Tabelle formatieren || <nowiki>\{\|</nowiki> || <nowiki>{| class="wikitable sortable options"</nowiki>|| | | Tabelle formatieren || <nowiki>\{\|</nowiki> || <nowiki>{| class="wikitable sortable options"</nowiki>|| | ||
|- | |- | ||
| Non Braking Spaces | | Non Braking Spaces || &nbsp; |||| | ||
|- | |- | ||
| Images | | Images || \[\[Image:.*\]\] || ''|| | ||
|- | |- | ||
| Images durch alt-Text ersetzen || \[\[Image:.*\|alt="(.*)"\]\] || \1|| | | Images durch alt-Text ersetzen || \[\[Image:.*\|alt="(.*)"\]\] || \1|| | ||
|- | |- | ||
| Führende Leerzeichen | | Führende Leerzeichen || ^ * || ''|| | ||
|- | |- | ||
| Manpage Überschriften | | Manpage Überschriften in Wiki-Überschriften || ^(<nowiki>[[:upper:]]</nowiki>{2,}[ /_]?[[:upper:] ]*)$ || <nowiki>== \1 ==</nowiki>|| | ||
|- | |- | ||
| Manpage Optionen in erste Tabellenzelle || <nowiki>(^-[A-Za-z0-9] ?[A-Za-z_\[\]:]*)</nowiki> || | \1|| | | Manpage Optionen in erste Tabellenzelle || <nowiki>(^-[A-Za-z0-9] ?[A-Za-z_\[\]:]*)</nowiki> || | \1|| | ||
Zeile 51: | Zeile 132: | ||
| Wikitable Spalten tauschen (Erste/Zweite) || <nowiki>(.*) \|\|(.*)$</nowiki> || <nowiki> |\2 |\1 </nowiki>|| | | Wikitable Spalten tauschen (Erste/Zweite) || <nowiki>(.*) \|\|(.*)$</nowiki> || <nowiki> |\2 |\1 </nowiki>|| | ||
|- | |- | ||
| Führende Nummern in Wiki-Überschriften | | Führende Nummern in Wiki-Überschriften || <nowiki>= ([0-9]*\.)* ([A-Z]){1}</nowiki> || <nowiki>= \2</nowiki>|| | ||
|- | |- | ||
| Leerzeichen am Zeilenende ersetzen || <nowiki>( $)</nowiki> |||| | | Leerzeichen am Zeilenende ersetzen || <nowiki>( $)</nowiki> |||| | ||
|- | |||
| Optionen in Wiki-Spalten || <nowiki> ^-(.*), --(.*)\n </nowiki> || <nowiki> |-\n| -\1 || --\2 || </nowiki> | |||
|} | |} | ||
Zeile 59: | Zeile 142: | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! Suchen !! Ersetzen | |||
|- | |- | ||
| bzw\. || beziehungsweise | |||
|- | |- | ||
| u\.U\. || gegebenenfalls | |||
|- | |- | ||
| d\.h\. || das bedeutet, | |||
|- | |- | ||
| z\.B\. || etwa | |||
|- | |- | ||
| <nowiki>z\.&nbsp;B\.</nowiki> || etwa | |||
|- | |- | ||
| u\.a\. || unter anderem | |||
|- | |- | ||
| ggf\. || gegebenenfalls | |||
|- | |- | ||
| usw\. || und so weiter | |||
|} | |} | ||
== [[egrep]]/[[awk]] == | |||
{| class="wikitable sortable" | {| class="wikitable sortable options" | ||
|- | |||
| <nowiki>[567]</nowiki> | |||
| Eine der Zahlen 5, 6 oder 7 | |||
|- | |||
| <nowiki>fuenf|sechs|sieben</nowiki> | |||
| Eines der Worte fünf, sechs oder sieben | |||
|- | |||
| <nowiki>80[234]?86></nowiki> | |||
| "8086", "80286", "80386", "80486" | |||
|- | |- | ||
| <nowiki>F(ahr|lug)zeug</nowiki> | |||
| "Fahrzeug" oder "Flugzeug" | |||
|- | |- | ||
|} | |} | ||
== | == [[sed]]/[[grep]] == | ||
{| class="wikitable sortable options" | {| class="wikitable sortable options" | ||
|- | |- | ||
| | | <nowiki>0\{5,\}*</nowiki> || Fünf oder mehr Nullen in Folge | ||
| | |||
|- | |- | ||
| | | <nowiki>[0-9]-[0-9]\{3\}-[0-9]\{5\}-[0-9X]*</nowiki> || ISBN-Nummern in der Form n-nnn-nnnnn-n, das letzte Zeichen kann auch ein X sein | ||
| | |} | ||
== [[vim]] == | |||
{| class="wikitable sortable options" | |||
|- | |- | ||
| | | \<The | ||
| | | Wörter wie "Theater" oder "Thema" | ||
|- | |- | ||
| | | ung\> | ||
| | | Wörter wie "Teilung" oder "Endung" | ||
|- | |- | ||
| | | \<Wort\> | ||
| | | Das Wort "Wort" | ||
|- | |- | ||
| | | s/.*/( & )/ | ||
| | | Leerzeichen wurden durch _ Tabulatoren durch TAB eretzt. Ex-Befehle werden mit Doppelpunkt eingeleitet. | ||
|- | |- | ||
| | | s/.*/mv & &.old/ | ||
| Wiederholt die ganze Zeile, fügt aber Klammern hinzu | |||
| | |||
|- | |- | ||
| | | /^$/d | ||
| | | Formt eine Wortliste (ein Wort pro Zeile) zu mv-Befehlen um | ||
|- | |- | ||
| | | /^[_TAB]*$/d | ||
| | | Löscht Leerzeilen | ||
|- | |- | ||
| | | / */ /g | ||
| | | Löscht Leerzeilen und Zeilen, die nur aus Leerzeichen oder Tabulatoren bestehen | ||
|- | |- | ||
| | | :s/[0-9]/Element &:/ | ||
| | | Wandelt ein oder mehrere Leerzeichen in ein Leerzeichen um | ||
|- | |- | ||
| | | :s | ||
| | | Wandelt (in der aktuellen Zeile) eine Zahl in ein Label für ein Element um | ||
|- | |- | ||
| | | :& | ||
| | | Wiederholt die Substitution beim ersten Vorkommen | ||
|- | |- | ||
| | | :sg | ||
| | | Wie oben | ||
|- | |- | ||
| | | :&g | ||
| | | Wie oben, aber für alle Vorkommen in einer Zeile | ||
|- | |- | ||
| | | :%&g | ||
| Wie oben | |||
|- | |- | ||
| | | :.,$s/Wort/\U&/g | ||
| | | Wiederholt die Substitution im ganzen Puffer | ||
|- | |- | ||
| | | :%s/.*/\L&/ | ||
| | | Wandelt von der aktuellen bis zur letzten Zeile das Wort Wort in Großschreibung um | ||
|- | |- | ||
| | | :s/\<./\u&/g | ||
| | | Wandelt die gesamte Datei in Kleinschreibung um | ||
|- | |- | ||
| | | :%s/ja/nein/g | ||
| | | Wandelt den ersten Buchstaben jedes Wortes in der aktuellen Zeile in Großschreibung um | ||
|- | |- | ||
| | | :%s/Ja/~/g | ||
| | | Ersetzt das Wort ja durch nein. | Ersetzt global ein anderes Wort (Ja) durch nein (Wiederverwendung des vorherigen Ersatzmusters) | ||
|- | |- | ||
|} | |} | ||
[[Kategorie:Bash/Scripting]] | [[Kategorie:Bash/Scripting]] | ||
[[Kategorie:Regular Expression]] | [[Kategorie:Regular Expression]] | ||
[[Kategorie:MediaWiki]] | [[Kategorie:MediaWiki/Anleitung]] | ||
[[Kategorie:MediaWiki/Vorlagen]] |
Aktuelle Version vom 28. Januar 2025, 11:04 Uhr
RegEx/Anwendungen - Beispiele
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
Aufgabe | Suchen | Ersetzen | Beschreibung |
---|---|---|---|
Absätze zusammenführen | ([a-zäüöß,-])\n([a-zäüöß]) | \1 \2 | |
Absätze aufbrechen | \. ([a-zA-Z]) | . \n\* \1 | |
Leerzeilen in Aufzählungen | \n\n([a-z]) | \n* \1 | |
Alleinstehende Aufzählungspunkte | ^\* $ | ||
Leere Absätze löschen | \n\n\n | \n\n | |
Zeilenwechsel nach Überschriften | =\n\n | =\n | |
style-Attribute | style=".*;" | ||
HTML-Kontainer | \<div.*\>(.*)\</div\> | \1 | |
HTML-Kontainer | \<tt\>(.*)\</tt\> | \1 | |
HTML-Kontainer | \<span\>(.*)\</span\> | \1 | |
HTML-Kontainer | \</*nowiki\> | ||
HTML-br | \<br/\> | \n | |
Anker | \{\{anchor.*\}\} | ||
Anker | \{\{anker.*\}\} | ||
Referenzen | \<ref\>.*\</ref\> | ||
Referenzen | <ref name=.*</ref> | ||
Referenzen | <ref name=.*/> | ||
Tabelle formatieren | \{\| | {| class="wikitable sortable options" | |
Non Braking Spaces | | ||
Images | \[\[Image:.*\]\] | ||
Images durch alt-Text ersetzen | alt="(.*)"\]\] | \1 | |
Führende Leerzeichen | ^ * | ||
Manpage Überschriften in Wiki-Überschriften | ^([[:upper:]]{2,}[ /_]?[[:upper:] ]*)$ | == \1 == | |
Manpage Optionen in erste Tabellenzelle | (^-[A-Za-z0-9] ?[A-Za-z_\[\]:]*) | \1 | |
TODOs auskommentieren | ^^('''TODO: '''.*$) | ^<!-- \1 --> | |
Wikitable Spalten tauschen (Erste/Zweite) | (.*) \|\|(.*)$ | |\2 |\1 | |
Führende Nummern in Wiki-Überschriften | = ([0-9]*\.)* ([A-Z]){1} | = \2 | |
Leerzeichen am Zeilenende ersetzen | ( $) | ||
Optionen in Wiki-Spalten | ^-(.*), --(.*)\n | |-\n| -\1 || --\2 || |
- Abkürzungen
Suchen | Ersetzen |
---|---|
bzw\. | beziehungsweise |
u\.U\. | gegebenenfalls |
d\.h\. | das bedeutet, |
z\.B\. | etwa |
z\. B\. | etwa |
u\.a\. | unter anderem |
ggf\. | gegebenenfalls |
usw\. | und so weiter |
egrep/awk
[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" |
sed/grep
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
\<The | Wörter wie "Theater" oder "Thema" |
ung\> | Wörter wie "Teilung" oder "Endung" |
\<Wort\> | Das Wort "Wort" |
s/.*/( & )/ | Leerzeichen wurden durch _ Tabulatoren durch TAB eretzt. Ex-Befehle werden mit Doppelpunkt eingeleitet. |
s/.*/mv & &.old/ | Wiederholt die ganze Zeile, fügt aber Klammern hinzu |
/^$/d | Formt eine Wortliste (ein Wort pro Zeile) zu mv-Befehlen um |
/^[_TAB]*$/d | Löscht Leerzeilen |
/ */ /g | Löscht Leerzeilen und Zeilen, die nur aus Leerzeichen oder Tabulatoren bestehen |
:s/[0-9]/Element &:/ | Wandelt ein oder mehrere Leerzeichen in ein Leerzeichen um |
:s | Wandelt (in der aktuellen Zeile) eine Zahl in ein Label für ein Element um |
:& | Wiederholt die Substitution beim ersten Vorkommen |
:sg | Wie oben |
:&g | Wie oben, aber für alle Vorkommen in einer Zeile |
:%&g | Wie oben |
:.,$s/Wort/\U&/g | Wiederholt die Substitution im ganzen Puffer |
:%s/.*/\L&/ | Wandelt von der aktuellen bis zur letzten Zeile das Wort Wort in Großschreibung um |
:s/\<./\u&/g | Wandelt die gesamte Datei in Kleinschreibung um |
:%s/ja/nein/g | Wandelt den ersten Buchstaben jedes Wortes in der aktuellen Zeile in Großschreibung um |
:%s/Ja/~/g | Ersetzt global ein anderes Wort (Ja) durch nein (Wiederverwendung des vorherigen Ersatzmusters) |