RegEx/Anwendungen: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „Kategorie:Regular expression“ durch „Kategorie:Regular Expression“
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Regular Expression/Übungen und Beispiele
{| class="wikitable sortable options"
|-
! 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\> ||||
|-
| HTML-Kontainer || \</*span\> ||||
|-
| HTML-Kontainer || \</*nowiki\> ||||
|-
| HTML-br || <nowiki>\<br/\></nowiki> || \n||
|-
| Anker entfernen || \{\{.*\}\}  ||||
|-
| Referenzen entfernen || \<ref\>.*\</ref\> ||||
|-
| Referenzen entfernen || <nowiki><ref name=".*" /></nowiki> ||||
|-
| Tabelle formatieren || <nowiki>\{\|</nowiki>  || <nowiki>\{\| class="wikitable sortable options"</nowiki>||
|-
| Non Braking Spaces entfernen || &amp;nbsp; ||||
|-
| Images entfernen || \[\[Image:.*\]\]  || ''||
|-
| Images durch alt-Text ersetzen || \[\[Image:.*\|alt="(.*)"\]\]  || \1||
|-
| Führende Leerzeichen entfernen || ^ * || ''||
|-
| Absätze zusammenführen || ([a-zäüöß,--])\n([a-zäüöß]) || \1 \2||
|-
| Manpage Überschriften formatieren  || ^(<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>||
|-
| Spalten tauschen (Erste/Zweite) || <nowiki>(.*) \|\|(.*)$</nowiki> || <nowiki> |\2 |\1 </nowiki>||
|-
| Führende Nummern in Wiki-Überschriften entfernen || <nowiki>= ([0-9]*\.)* ([A-Z]){1}</nowiki> || <nowiki>= \2</nowiki>||
|-
| Leerzeichen am Zeilenende ersetzen || <nowiki> ([^ ]) $ </nowiki> || \1 ||
|}
 
; Abkürzungen
{| class="wikitable sortable"
|-
! 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 || <nowiki>z\.&amp;nbsp;B\.</nowiki> || etwa
|-
| Abkürzungen || u\.a\. || unter anderem
|-
| Abkürzungen || ggf\. || gegebenenfalls
|-
| Abkürzungen || usw\. || und so weiter
|}
 
; Test
{| class="wikitable sortable"
|-
! Aufgabe !! Suchen !! Ersetzen
|-
| TEST || <nowiki> ^-(.*), --(.*)\n </nowiki> || <nowiki> | -\1 || --\2 </nowiki>
|}


==  Einfache Übungen ==
==  Einfache Übungen ==
Zeile 196: Zeile 281:
[[Kategorie:Linux/Dateien]]
[[Kategorie:Linux/Dateien]]
[[Kategorie:IT-Grundlagen]]
[[Kategorie:IT-Grundlagen]]
[[Kategorie:MediaWiki]]

Version vom 30. März 2023, 11:49 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\>
HTML-Kontainer \</*span\>
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 &nbsp;
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\.&nbsp;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 Ü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)