20 HĂ€ufige regex-Muster, die jeder Entwickler kennen sollte
20 HĂ€ufige regex-Muster, die jeder Entwickler kennen sollte
regex löst reale Probleme: Eingabevalidierung, Datenextraktion und Zeichenketten-Transformation. Dieser Leitfaden stellt 20 gebrauchsfertige regulĂ€re AusdrĂŒcke vor, die die hĂ€ufigsten Textverarbeitungsaufgaben abdecken. Jedes Muster enthĂ€lt eine ErklĂ€rung, was es abgleicht.
1. E-Mail-Adresse
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Der lokale Teil erlaubt Buchstaben, Ziffern, Punkte und Sonderzeichen. Die Domain erlaubt Buchstaben, Ziffern und Punkte. Die TLD muss aus mindestens zwei Buchstaben bestehen.
2. URL
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)
Gleicht HTTP/HTTPS-URLs mit optionalem www, Domainnamen, TLD, Pfad und Query-String ab.
3. US-Telefonnummer
^\(?(\d{3})\)?[-.\s]?(\d{3})[-.\s]?(\d{4})$
Gleicht (555) 123-4567, 555-123-4567, 555.123.4567 und 5551234567 ab.
4. Internationale Telefonnummer
^\+?(\d{1,3})\s?[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$
Tolerantes Muster fĂŒr internationale Nummern mit LĂ€ndervorwahlen.
5. Sicheres Passwort
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
Erfordert mindestens 8 Zeichen, einen Kleinbuchstaben, einen GroĂbuchstaben, eine Ziffer und ein Sonderzeichen. Verwendet Lookahead-Assertions.
6. Datum (JJJJ-MM-TT)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
ISO-8601-Format. Monat 01-12, Tag 01-31. Validiert nicht die monatsspezifischen Grenzen (der 30. Februar wird akzeptiert).
7. Datum (MM/TT/JJJJ)
^(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])\/\d{4}$
US-Format mit SchrÀgstrichen.
8. Uhrzeit (HH:MM im 24-Stunden-Format)
^([01]\d|2[0-3]):[0-5]\d$
Stunden 00-23, Minuten 00-59.
9. IPv4-Adresse
^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$
Vier Oktette. FĂŒr eine strenge Validierung (0-255) ersetze \d{1,3} durch (25[0-5]|2[0-4]\d|[01]?\d\d?).
10. IPv6-Adresse
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
VollstĂ€ndiges IPv6 mit 8 Gruppen aus Hexadezimalziffern. Behandelt die ::-AbkĂŒrzung nicht.
11. MAC-Adresse
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$
Mit Doppelpunkt oder Bindestrich getrennt.
12. Hex-Farbcode
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
3-stellig (#fff) oder 6-stellig (#ffffff), GroĂ-/Kleinschreibung wird nicht beachtet.
13. Kreditkartennummer
^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$
16 Ziffern mit optionalen Trennzeichen. Validiert nicht die Luhn-PrĂŒfsumme.
14. US-PLZ
^\d{5}(-\d{4})?$
12345 oder 12345-6789.
15. Benutzername
^[a-zA-Z0-9_]{3,16}$
3-16 Zeichen, nur Buchstaben, Ziffern und Unterstriche.
16. URL-Slug
^[a-z0-9-]+$
Kleinbuchstaben, Ziffern und Bindestriche. HĂ€ufig in CMS-Systemen.
17. HTML-Tag
<\/?[\w\s]*>|<.+[\w\s]*>
Gleicht öffnende und schlieĂende Tags ab. Nicht geeignet fĂŒr verschachteltes HTML.
18. Dateiendung
\.([a-zA-Z]{2,})$
Extrahiert die Endung ohne den Punkt.
19. Normalisierung von Leerzeichen
\s+
Fasst mehrere Leerzeichen, Tabulatoren oder ZeilenumbrĂŒche zu einem zusammen.
20. Zahlen extrahieren
-?\d+(\.\d+)?
Ganzzahlen und Dezimalzahlen, einschlieĂlich negativer Zahlen.
Tipps zur Leistung
- Sei spezifisch â vermeide
.*, das zu katastrophalem Backtracking fĂŒhren kann. - Verankere mit
^und$, um den Suchbereich einzugrenzen. - Teste RandfÀlle: leere Zeichenketten, lange Zeichenketten, Sonderzeichen.
Teste diese Muster online
Nutze das regex-Tester-Tool, um mit diesen Mustern zu experimentieren. FĂŒge einen beliebigen Ausdruck ein, gib Beispieltext ein und sieh Ăbereinstimmungen in Echtzeit hervorgehoben. Der Tester zeigt Erfassungsgruppen und hilft, Muster vor der Verwendung zu debuggen.