Reguläre Ausdrücke (regular expression)

Allgemein

Ein regulärer Ausdruck (englisch regular expression, Abkürzung RegExp oder Regex) ist in der theoretischen Informatik eine Zeichenkette, die der Beschreibung von Mengen von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln dient.

Regulärer_Ausdruck @ Wikipedia

Unterstützung in verschiedenen

🡲 ermöglicht ein definiertes Muster innerhalb eines Texts zu suchen (sog. Pattern Matching)

Syntax

Grundlegender Aufbau (abhängig von Programmiersprache, mit kleinen Unterschieden):

/regex/options

Beispiel in PHP:

$text = "Ein kurzer Text.";
$pattern = "/ein/i";
echo preg_match($pattern, $text); 

preg_match(), preg_match_all(), preg_replace(), ...

Beispiel in JavaScript:

let pattern = /[a-z]{3}/gm
let text = "123 abc ABC xyzzz"
let match = text.match(pattern)
console.log(match)

Regex

Regex im Detail: Mustererkennung mit Regular Expressions (RegEx) 19.05.2023

Literale Zeichen:

Normale Zeichen als einfache Muster z.B.: hello würde nach dem Wort "hello" suchen

Metazeichen:

Quantifizierer:

Gruppierung:

Escape-Zeichen:

...

Options (pattern modifiers)

Webseiten / Online Tools

regex101: build, test, and debug regex

RegExr: Learn, Build, & Test RegEx

Regex Generator - Creating regex is easy again!

...

Übungen

📋 E-Mail-Adresse filtern

Extrahiere alle E-Mail-Adressen aus einem Text. Überlege - Wie sieht der Aufbau einer allgemein gültigen E-Mail-Adresse aus?

Kontaktiere mich unter test@example.com oder info@beispiel.de"

📋 Datum filtern

Extrahiere alle Vorkommen von Datumsangaben im Format DD.MM.YYYY aus dem Text.

Der Termin ist für den 31.12.2024 geplant und das Event beginnt am 01.01.2025.
Im englischsprachigen Raum wäre es das Datum 2024/12/31 und 2025/01/01. 

📋 Großbuchstaben entfernen

Entferne alle Großbuchstaben aus dem Text.

Dieser Text Enthält GroßBuchstaben.

📋 Wortanfänge markieren

Füge vor jedem Wortanfang im Text das Symbol # ein.

Dies ist ein Beispieltext.

📋 Telefonnummern formatieren

Ersetze alle Telefonnummern im Format (123) 456-7890 durch 123-456-7890.

Meine Nummer ist (123) 456-7890 und die Büronummer ist (987) 654-3210.