RegEx/Anwendungen: Unterschied zwischen den Versionen
Erscheinungsbild
	
	
 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…“  | 
				|||
| (79 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
'''RegEx/Anwendungen''' - Beispiele  | |||
=   | == Beispiele ==  | ||
{| class="wikitable sortable options gnu big"  | |||
{| class="wikitable sortable"  | |||
|-  | |-  | ||
|  |   | ! 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 löschen || \n\n([a-z]) || \n* \1||  | |||
|-  | |||
| Alleinstehende Aufzählungspunkte löschen || ^\* $  ||||  | |||
|-  | |||
| Leere Absätze löschen || \n\n\n  || \n\n||  | |||
|-  | |||
| Zeilenwechsel nach Überschriften löschen || =\n\n  || =\n||  | |||
|-  | |||
| style-Attribute löschen || style=".*;" ||||  | |||
|-  | |||
| DIV-Kontainer löschen || \<div.*\>(.*)\</div\> || \1||  | |||
|-  | |||
| TT-Kontainer löschen || \<tt\>(.*)\</tt\> || \1 ||  | |||
|-  | |||
| SPAN-Kontainer löschen || \<span\>(.*)\</span\> || \1 ||  | |||
|-  | |||
| NOWIKI-Kontainer löschen || \</*nowiki\> ||||  | |||
|-  | |||
| HTML-br || <nowiki>\<br/\></nowiki> || \n||  | |||
|-  | |||
| Anker  || \{\{anchor.*\}\}   ||||  | |||
|-  | |||
| Anker  || \{\{anker.*\}\}   ||||  | |||
|-  | |||
| Referenzen  ||   | |||
<nowiki>\<ref\>.*\</ref\></nowiki></br>  | |||
<nowiki><ref name=.*</ref></nowiki></br>  | |||
<nowiki><ref name=.*/></nowiki></br>   | |||
|-  | |||
| Tabelle formatieren || <nowiki>\{\|</nowiki>  || <nowiki>{| class="wikitable sortable options"</nowiki>||  | |||
|-  | |||
| Non Braking Spaces  || &nbsp; ||||  | |||
|-  | |||
| Images  || \[\[Image:.*\]\]  || ''||  | |||
|-  | |||
| Images durch alt-Text ersetzen || \[\[Image:.*\|alt="(.*)"\]\]  || \1||  | |||
|-  | |||
| Führende Leerzeichen  || ^ * || ''||  | |||
|-  | |||
| 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||  | |||
|-  | |||
| TODOs auskommentieren ||  <nowiki>^^('''TODO: '''.*$)</nowiki> ||  <nowiki> ^<!-- \1 --> </nowiki>||  | |||
|-  | |||
| Wikitable Spalten tauschen (Erste/Zweite) || <nowiki>(.*) \|\|(.*)$</nowiki> || <nowiki> |\2 |\1 </nowiki>||  | |||
|-  | |||
| Führende Nummern in Wiki-Überschriften  || <nowiki>= ([0-9]*\.)* ([A-Z]){1}</nowiki> || <nowiki>= \2</nowiki>||  | |||
|-  | |||
| Leerzeichen am Zeilenende ersetzen || <nowiki>( $)</nowiki> ||||  | |||
|-  | |||
| Optionen in Wiki-Spalten || <nowiki> ^-(.*), --(.*)\n </nowiki> || <nowiki> |-\n| -\1 || --\2 ||  </nowiki>  | |||
|}  | |||
; Abkürzungen  | |||
{| class="wikitable sortable options big"  | |||
|-  | |||
! 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   | |||
|}  | |||
|  |   | ==  Einfache Ausdrücke ==  | ||
{| class="wikitable sortable options big"  | |||
|-  | |||
|  | Haus  | |||
|  | Die Zeichenfolge "Haus"  | |  | Die Zeichenfolge "Haus"  | ||
|-  | |-  | ||
|  |   | |  | ^Haus  | ||
|  | "Haus" am Zeilenanfang  | |  | "Haus" am Zeilenanfang  | ||
|-  | |-  | ||
|  |   | |  | Haus$  | ||
|  | "Haus" am Zeilenende  | |  | "Haus" am Zeilenende  | ||
|-  | |-  | ||
|  |   | |  | ^Haus$  | ||
|  | "Haus" als einziges Wort in einer Zeile  | |  | "Haus" als einziges Wort in einer Zeile  | ||
|-  | |-  | ||
|  |   | |  | [Hh]aus  | ||
|  | "Haus" oder "haus"  | |  | "Haus" oder "haus"  | ||
|-  | |-  | ||
|  |   | |  | Ha[unl]s  | ||
|  | "Haus", "Hals" oder "Hans"  | |  | "Haus", "Hals" oder "Hans"  | ||
|-  | |-  | ||
|  |   | |  | [^HML]aus  | ||
|  | 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  | ||
|-  | |-  | ||
|  |   | |  | Ha.s  | ||
|  | Der dritte Buchstabe ist ein beliebiges Zeichen  | |  | Der dritte Buchstabe ist ein beliebiges Zeichen  | ||
|-  | |-  | ||
|  |   | |  | ^...$  | ||
|  | Jede Zeile mit genau drei Zeichen  | |  | Jede Zeile mit genau drei Zeichen  | ||
|-  | |-  | ||
|  |   | |  | ^\.  | ||
|  | Jede Zeile, die mit einem Punkt beginnt  | |  | Jede Zeile, die mit einem Punkt beginnt  | ||
|-  | |-  | ||
|  |   | |  | ^\.[a-z][a-z]  | ||
|  | Jede Zeile, die mit einem Punkt und zwei Kleinbuchstaben beginnt  | |  | Jede Zeile, die mit einem Punkt und zwei Kleinbuchstaben beginnt  | ||
|-  | |-  | ||
|  |   | |  | ^\.[a-z]\{2\}  | ||
|  | Wie oben, jedoch nur in grep und sed zulässig  | |  | Wie oben, jedoch nur in grep und sed zulässig  | ||
|-  | |-  | ||
|  |   | |  | ^[^.]  | ||
|  | Jede Zeile, die nicht mit einem Punkt beginnt  | |  | Jede Zeile, die nicht mit einem Punkt beginnt  | ||
|-  | |-  | ||
|  |   | |  | Fehler*  | ||
|  | "Fehle"(!), "Fehler", "Fehlers", etc  | |  | "Fehle"(!), "Fehler", "Fehlers", etc  | ||
|-  | |-  | ||
|  |   | |  | "Wort"  | ||
|  | Ein Wort in Anführunszeichen  | |  | Ein Wort in Anführunszeichen  | ||
|-  | |-  | ||
|  |   | |  | "*Wort"*  | ||
|  | Ein Wort mit beliebig vielen (auch keinen) Anführungszeichen  | |  | Ein Wort mit beliebig vielen (auch keinen) Anführungszeichen  | ||
|-  | |-  | ||
|  |   | |  | [A-Z][A-Z]*  | ||
|  | Ein oder mehrere Großbuchstaben.  | |  | Ein oder mehrere Großbuchstaben.  | ||
|-  | |-  | ||
|  |   | |  | [A-Z]+  | ||
|  | Wie oben, jedoch nur in egrep und awk zulässig  | |  | Wie oben, jedoch nur in egrep und awk zulässig  | ||
|-  | |-  | ||
|  |   | |  | [A-Z].*  | ||
|  | Ein Großbuchstabe, gefolgt von keinem oder beliebig vielen Zeichen  | |  | Ein Großbuchstabe, gefolgt von keinem oder beliebig vielen Zeichen  | ||
|-  | |-  | ||
|  |   | |  | [A-Z]*  | ||
|  | Kein, ein oder mehrere Großbuchstaben  | |  | Kein, ein oder mehrere Großbuchstaben  | ||
|-  | |-  | ||
|  |   | |  | [a-zA-Z]  | ||
|  | Ein Buchstabe  | |  | Ein Buchstabe  | ||
|-  | |-  | ||
|  |   | |  | [^0-9a-zA-Z]  | ||
|  | Symbole (weder Buchstaben noch Zahlen)  | |  | Symbole (weder Buchstaben noch Zahlen)  | ||
|-  | |-  | ||
|  |   | |  | [0-9a-zA-Z]  | ||
|  | Jedes alphanumerische Zeichen  | |  | Jedes alphanumerische Zeichen  | ||
|-  | |||
|}  | |||
==  [[egrep]]/[[awk]] ==  | |||
{| class="wikitable sortable options big"  | |||
|-  | |||
| <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 big"  | |||
|-  | |||
| <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 big"  | |||
|-  | |||
| \<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    | |||
Leerzeichen wurden durch _ Tabulatoren durch TAB eretzt. Ex-Befehle werden mit Doppelpunkt eingeleitet.  | |-  | ||
| /^$/d  | |||
Wiederholt die ganze Zeile, fügt aber Klammern hinzu  | | Formt eine Wortliste (ein Wort pro Zeile) zu mv-Befehlen um    | ||
|-  | |||
| /^[_TAB]*$/d  | |||
Formt eine Wortliste (ein Wort pro Zeile) zu mv-Befehlen um  | | Löscht Leerzeilen    | ||
|-  | |||
| / */ /g  | |||
Löscht Leerzeilen  | | Löscht Leerzeilen und Zeilen, die nur aus Leerzeichen oder Tabulatoren bestehen    | ||
|-  | |||
| :s/[0-9]/Element &:/  | |||
Löscht Leerzeilen und Zeilen, die nur aus Leerzeichen oder Tabulatoren bestehen  | | Wandelt ein oder mehrere Leerzeichen in ein Leerzeichen um    | ||
|-  | |||
| :s  | |||
Wandelt ein oder mehrere Leerzeichen in ein Leerzeichen um  | | Wandelt (in der aktuellen Zeile) eine Zahl in ein Label für ein Element um    | ||
|-  | |||
| :&  | |||
Wandelt (in der aktuellen Zeile) eine Zahl in ein Label für ein Element um  | | Wiederholt die Substitution beim ersten Vorkommen    | ||
|-  | |||
| :sg  | |||
Wiederholt die Substitution beim ersten Vorkommen  | | Wie oben    | ||
|-  | |||
| :&g  | |||
Wie oben  | | Wie oben, aber für alle Vorkommen in einer Zeile    | ||
|-  | |||
| :%&g  | |||
Wie oben, aber für alle Vorkommen in einer Zeile  | | Wie oben    | ||
|-  | |||
| :.,$s/Wort/\U&/g  | |||
Wie oben  | | Wiederholt die Substitution im ganzen Puffer    | ||
|-  | |||
| :%s/.*/\L&/  | |||
Wiederholt die Substitution im ganzen Puffer  | | Wandelt von der aktuellen bis zur letzten Zeile das Wort Wort in Großschreibung um    | ||
|-  | |||
| :s/\<./\u&/g  | |||
Wandelt von der aktuellen bis zur letzten Zeile das Wort Wort in Großschreibung um  | | Wandelt die gesamte Datei in Kleinschreibung um    | ||
|-  | |||
| :%s/ja/nein/g  | |||
Wandelt die gesamte Datei in Kleinschreibung um  | | Wandelt den ersten Buchstaben jedes Wortes in der aktuellen Zeile in Großschreibung um    | ||
|-  | |||
| :%s/Ja/~/g  | |||
Wandelt den ersten Buchstaben jedes Wortes in der aktuellen Zeile in Großschreibung um  | | Ersetzt das Wort ja durch nein. | Ersetzt global ein anderes Wort (Ja) durch nein (Wiederverwendung des vorherigen Ersatzmusters)    | ||
|-  | |||
|}  | |||
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   | [[Kategorie:Regular Expression]]  | ||
[[Kategorie:  | [[Kategorie:MediaWiki/Anleitung]]  | ||
[[Kategorie:  | [[Kategorie:MediaWiki/Vorlage]]  | ||
Aktuelle Version vom 8. September 2025, 14:01 Uhr
RegEx/Anwendungen - Beispiele
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 löschen | \n\n([a-z]) | \n* \1 | |
| Alleinstehende Aufzählungspunkte löschen | ^\* $ | ||
| Leere Absätze löschen | \n\n\n | \n\n | |
| Zeilenwechsel nach Überschriften löschen | =\n\n | =\n | |
| style-Attribute löschen | style=".*;" | ||
| DIV-Kontainer löschen | \<div.*\>(.*)\</div\> | \1 | |
| TT-Kontainer löschen | \<tt\>(.*)\</tt\> | \1 | |
| SPAN-Kontainer löschen | \<span\>(.*)\</span\> | \1 | |
| NOWIKI-Kontainer löschen | \</*nowiki\> | ||
| HTML-br | \<br/\> | \n | |
| Anker | \{\{anchor.*\}\} | ||
| Anker | \{\{anker.*\}\} | ||
| Referenzen | 
 \<ref\>.*\</ref\>  | ||
| 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 | 
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 | 
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) |