Sie möchten reguläre Ausdrücke kostenlos online testen oder endlich verstehen, wie diese mysteriösen Zeichenfolgen funktionieren? Reguläre Ausdrücke (oder “Regex”) machen vielen Entwicklern Angst. Diese kryptischen Muster wie ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ scheinen auf den ersten Blick unverständlich.
Doch Regex ist ein mächtiges Werkzeug zum Validieren von Mustern, Durchsuchen von Text und Extrahieren von Daten. Ob Sie eine E-Mail-Adresse validieren, eine Telefonnummer überprüfen oder Informationen aus Log-Dateien extrahieren müssen – reguläre Ausdrücke sind die Lösung.
Unser Regex-Tester ermöglicht es Ihnen, mit Flags und Gruppen zu experimentieren in Echtzeit. Es ist ein Regex-Tool für Entwickler, ideal zum Lernen und Debuggen Ihrer Muster. In diesem progressiven Leitfaden entdecken Sie, wie Sie Regex Schritt für Schritt meistern.
Was ist ein regulärer Ausdruck?
Ein Regex ist ein Suchmuster, das eine Menge von Zeichenketten beschreibt. Es ermöglicht:
- Validieren: Überprüfen, ob eine Eingabe einem Format entspricht (E-Mail, Telefon, etc.)
- Suchen: Vorkommen in einem Text finden
- Extrahieren: Spezifische Teile einer Zeichenkette erfassen
- Ersetzen: Text nach Mustern modifizieren
Die wesentlichen Grundlagen
Literale Zeichen
Standardmäßig entspricht ein Zeichen sich selbst:
| Pattern | Entspricht |
|---|---|
hello | ”hello” im Text |
2025 | ”2025” im Text |
Testen Sie in unserem Regex-Tester: Geben Sie hello als Pattern und hello world als Text ein.
Sonderzeichen (Metazeichen)
Bestimmte Zeichen haben eine besondere Bedeutung:
| Zeichen | Bedeutung |
|---|---|
. | Jedes Zeichen (außer Zeilenumbruch) |
\d | Eine Ziffer (0-9) |
\D | Alles außer einer Ziffer |
\w | Ein “Wort”-Zeichen (Buchstabe, Ziffer, Unterstrich) |
\W | Alles außer einem Wortzeichen |
\s | Ein Leerzeichen (Leerzeichen, Tab, Zeilenumbruch) |
\S | Alles außer einem Leerzeichen |
Beispiele:
\d\d\dentspricht “123”, “456”, “789”\w\w\wentspricht “abc”, “A_1”, “foo”
Quantifikatoren
Quantifikatoren geben an, wie oft ein Element erscheinen muss:
| Quantifikator | Bedeutung |
|---|---|
* | Null oder mehr |
+ | Eins oder mehr |
? | Null oder eins (optional) |
{n} | Genau n-mal |
{n,} | Mindestens n-mal |
{n,m} | Zwischen n und m-mal |
Praktische Beispiele:
\d+: eine oder mehrere Ziffern → “1”, “123”, “99999”\d{4}: genau 4 Ziffern → “2025”, “1234”\d{2,4}: zwischen 2 und 4 Ziffern → “12”, “123”, “1234”
Zeichenklassen
Die eckigen Klammern [] definieren eine Menge möglicher Zeichen:
| Pattern | Entspricht |
|---|---|
[abc] | ”a”, “b” oder “c” |
[a-z] | Jeder Kleinbuchstabe |
[A-Z] | Jeder Großbuchstabe |
[0-9] | Jede Ziffer (entspricht \d) |
[a-zA-Z] | Jeder Buchstabe |
[^abc] | Alles AUSSER “a”, “b” oder “c” |
Beispiele:
[aeiou]: ein Vokal[a-zA-Z0-9]: ein alphanumerisches Zeichen[^0-9]: alles außer einer Ziffer
Anker
Anker entsprechen nicht Zeichen, sondern Positionen:
| Anker | Bedeutung |
|---|---|
^ | Zeilenanfang/Zeichenkette |
$ | Zeilenende/Zeichenkette |
\b | Wortgrenze |
Beispiele:
^Bonjour: “Bonjour” am Anfangfin$: “fin” am Ende\bcat\b: das Wort “cat” (nicht “category”)
Gruppen und Alternativen
| Pattern | Bedeutung |
|---|---|
(abc) | Erfassende Gruppe |
(?:abc) | Nicht erfassende Gruppe |
a|b | ”a” ODER “b” |
Beispiele:
(chat|chien): “chat” oder “chien”https?: “http” oder “https” (das “s” ist optional)
Praktische Alltagsbeispiele
E-Mail validieren
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Aufschlüsselung:
^: Anfang der Zeichenkette[a-zA-Z0-9._%+-]+: lokaler Teil (vor @)@: das @-Zeichen[a-zA-Z0-9.-]+: Domainname\.: der Punkt (escaped, da.speziell ist)[a-zA-Z]{2,}: Erweiterung (mindestens 2 Buchstaben)$: Ende der Zeichenkette
Französische Telefonnummer validieren
^(?:(?:\+|00)33|0)\s*[1-9](?:[\s.-]*\d{2}){4}$
Akzeptiert: “0612345678”, “06 12 34 56 78”, “+33 6 12 34 56 78”
URLs extrahieren
https?://[^\s]+
Einfach, aber effektiv, um URLs in einem Text zu finden.
Französische Postleitzahl validieren
^[0-9]{5}$
Genau 5 Ziffern.
IP-Adressen finden
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
Hinweis: Dies findet IP-Formate, nicht unbedingt gültige IPs (0-255).
Starkes Passwort validieren
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
Erfordert: Kleinbuchstabe, Großbuchstabe, Ziffer, Sonderzeichen, mindestens 8 Zeichen.
Benötigen Sie ein starkes Passwort? Verwenden Sie unseren Passwort-Generator!
Hashtags extrahieren
#\w+
Findet alle Hashtags in einem Text.
Häufige Fallstricke zu vermeiden
1. Vergessen, Sonderzeichen zu escapen
// ❌ Sucht nach beliebigem Zeichen.com
example.com
// ✅ Sucht genau nach "example.com"
example\.com
Zu escapende Zeichen: . * + ? ^ $ { } [ ] ( ) | \
2. Gierige Regex
Die Quantifikatoren * und + sind standardmäßig “gierig”:
// Text: "<div>hello</div><div>world</div>"
// ❌ Gierig: erfasst alles zwischen dem ersten < und dem letzten >
<.+>
// ✅ Nicht-gierig: erfasst jedes Tag
<.+?>
3. Patterns nicht verankern bei Validierung
// ❌ Findet "123" in "abc123def"
\d+
// ✅ Validiert, dass die gesamte Zeichenkette eine Zahl ist
^\d+$
4. Groß-/Kleinschreibung
// ❌ Findet nicht "HELLO"
hello
// ✅ Mit case-insensitive Flag (i)
hello // mit /i
[Hh][Ee][Ll][Ll][Oo] // ohne Flag
Flags (Modifikatoren)
| Flag | Bedeutung |
|---|---|
i | Case-insensitive |
g | Global (alle Vorkommen) |
m | Mehrzeilig (^ und $ pro Zeile) |
s | Der Punkt . schließt Zeilenumbrüche ein |
Unser Regex-Tester ermöglicht es Ihnen, verschiedene Flags zu testen.
Regex in verschiedenen Sprachen
JavaScript
const regex = /\d+/g;
const text = "Il y a 3 pommes et 5 oranges";
// Test
regex.test(text); // true
// Match
text.match(regex); // ["3", "5"]
// Replace
text.replace(/\d+/g, "X"); // "Il y a X pommes et X oranges"
Python
import re
text = "Il y a 3 pommes et 5 oranges"
pattern = r"\d+"
# Suche
re.search(pattern, text) # Match-Objekt für "3"
# Alle Vorkommen
re.findall(pattern, text) # ["3", "5"]
# Ersetzung
re.sub(pattern, "X", text) # "Il y a X pommes et X oranges"
PHP
$text = "Il y a 3 pommes et 5 oranges";
$pattern = "/\d+/";
// Suche
preg_match($pattern, $text, $matches);
// Alle Vorkommen
preg_match_all($pattern, $text, $matches);
// Ersetzung
preg_replace($pattern, "X", $text);
Praktische Übungen
Testen Sie diese Übungen in unserem Regex-Tester:
Übung 1: Daten
Finden Sie Daten im Format TT/MM/JJJJ in: “Rendez-vous le 15/03/2025 ou le 20/04/2025”
Lösung
\d{2}/\d{2}/\d{4}
Übung 2: Euro-Beträge
Extrahieren Sie die Preise aus: “Article A : 19,99€ - Article B : 150€ - Total : 169,99 €“
Lösung
\d+(?:,\d{2})?\s*€
Übung 3: Dateinamen
Finden Sie .jpg oder .png Dateien: “photo.jpg, document.pdf, image.png, video.mp4”
Lösung
\w+\.(?:jpg|png)
Ressourcen zum Fortschritt
Üben
- Unser Regex-Tester mit Echtzeit-Feedback
- regex101.com für detaillierte Erklärungen
- regexr.com mit vollständiger Referenz
Memorierung
- Die Grundlagen:
.,\d,\w,\s - Die Quantifikatoren:
*,+,?,{n} - Die Anker:
^,$,\b
Ergänzende Tools
Um effizient mit Text zu arbeiten:
- Regex-Tester: Testen Sie Ihre Ausdrücke in Echtzeit
- Wortzähler: Analysieren Sie Ihre Texte
- Text-Vergleicher: Vergleichen Sie vor/nach Ersetzung
- JSON-Formatierer: Formatieren Sie extrahierte Daten
Fazit
Reguläre Ausdrücke sind ein leistungsstarkes Werkzeug, das die Investition ins Lernen verdient. Beginnen Sie mit den Grundlagen, üben Sie regelmäßig, und Sie werden überrascht sein, wie schnell Sie komplexe Patterns erstellen können.
Der Schlüssel: testen, testen, testen. Unser Regex-Tester ist dafür da!
Zögern Sie nicht, zu diesem Leitfaden als Referenz zurückzukehren, und viel Erfolg beim Üben!