Atlas Informatik

Regex-Übersicht

Regular Expressions (Regex)

Regex ist eine Syntax mit der man spezielle Kombinationen von Zeichen und Wörtern finden und auch ersetzen kann.

Das Wichtigste in Kürze

  • Escape-Zeichen für spezielle Notationen: \
    Beispiel: \t für ein Tabulatorzeichen, \r für einen Rücklauf (CR), \n für ein Neuezeilezeichen (LF). Hex-Beispiele: \x0D, \u000D.
    Das Escapen von kompletten Zeichenketten kann leicht mit dem Text-Experten von Mighty Desktop gemacht werden.

  • Das Zeichen x nicht interpretieren: [x]   (Ausnahme ist \, das muss per \\ gemacht werden)
    Das muss inbesondere gemacht werden, wenn x eines dieser Zeichen ist: . ? \ ( ) + * $ ^ { [ |

  • Symbol für eine beliebige Passage, ev. auch nicht da: (.*)

  • Symbol für eine beliebige Passage, mind. 1 Zeichen muss da sein: (.+)

  • Symbol für ein beliebiges Zeichen (ausser Zeilenende): .

  • Symbol für eine beliebige Zahl (nur aus Ziffern), ev. auch nicht da: (\d*)

  • Symbol für eine beliebige Zahl, mind. einstellig: (\d+)

  • Symbol für eine zwei- oder dreistellige Zahl: (\d{2,3})

  • Symbol für einen deutschen Buchstaben inklusive Unterstrich: \w (entspricht etwa [a-zA-ZäöüÄÖÜß_])

  • Symbol für einen englischen Buchstaben: ([a-zA-Z])

  • Symbol für einen Leerschlag oder Tabulatorzeichen (oder andere unsichtbare Zeichen): \s (Gegenteil: \S)

  • Anfang des durchsuchten Texts, häufig Zeilenanfang: ^ (Warnung: Wenn eine Datei durchsucht wird, meint dies den Dateianfang)

  • Ende des durchsuchten Texts, häufig Zeilenende: $ (Warnung: Wenn eine Datei durchsucht wird, meint dies das Dateiende)

Aufgenommene Teile (englisch: Captured Parts)

RegEx bietet die Möglichkeit, übereinstimmende Teile aus der Suchzeichenkette in die Ersetzungszeichenkette zu übernehmen. Wenn beispielsweise nach "a(.*)c" gesucht wird und "abc" gefunden wurde, ist "b" ein solcher Aufgenommener Teil (englisch "Captured Part"). Die Aufgenommenen Teile werden ab 1 hochgezählt und ein $ vorangestellt. Man kann dann also dieses "b" in den Ersatzstring einsetzen lassen durch "x$1y" und kriegt so "xby" als Ersetzung hin.

Beachten Sie, dass diese Notation nicht funktioniert, wenn die auf die Zahl folgenden Zeichen Ziffern sind. Beispiel: Wenn Sie durch "x" + $1 + "5" ersetzen wollten, würde das als "x$15" geschrieben und von RegEx fälschlicherweise als aufgenommener Teil Nummer 15 interpretiert werden. Für diesen Fall gibt es eine komplexere Notation mit benannten erfassten Teilen.

Eine andere Möglichkeit besteht darin, eine Passage in einer benannten Variable zu erfassen. Dieser Ausdruck erfasst beispielsweise einen Bezeichner mit 1 bis 100 Zeichen in einer Variablen mit dem Namen 'name': "(?<name>[A-Za-z_]{1,100})". In der Ersetzungszeichenfolge können Sie dies dann mit "${name}" einfügen lassen.


Oft benutzte Regex-Ausdrücke

Dezimalzahl [+-]?(\d+\.?\d*|\.\d+)
Versionsnummer max. 4-teilig (\d{1,10})([.]\d{1,10}){1,3}
GUID klein oder gross ohne Klammern [0-9A-Fa-f]{8}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{12}

Mehr Infos

Webseite Inhalt
Regular-Expressions.info Tutorial zum schrittweisen Kennenlernen von Regex [englisch]
Regex One Weiteres Tutorial zum schrittweisen Kennenlernen von Regex [englisch]
Strassenprogrammierer Ein paar Grundfunktionen
Daniel Fett Tutorial Reguläre Ausdrücke
Zytrax Übersichtliches Dokument [englisch]
Microsoft [Englische Variante] Alles, aber sehr technisch beschrieben
Wikipedia Abstrakte Beschreibung von Regex

 

 

 

Gehe an den Anfang