Skip to content
DocsAll
技巧

Reguläre Ausdrücke in der Praxis: häufige Textverarbeitungsfälle

Timi Tian · Veröffentlicht am 24. März 2026 · Aktualisiert am 12. Juli 2026
Reguläre AusdrückeRegexTextverarbeitung

Drei Praxisfälle für regex

Regex wird konkret in drei Arten von Operationen eingesetzt:

  • Validierung: prüfen, ob ein Text einem Format entspricht (z. B. E-Mail, Handynummer)
  • Extraktion: in einem Text Inhalte finden, die einem Muster entsprechen (alle URLs, alle Beträge)
  • Ersetzung: die dem Muster entsprechenden Teile durch etwas anderes ersetzen (Datumsformat vereinheitlichen, Handynummer maskieren)

Nachfolgend Demonstration anhand konkreter Fälle.

Validierungsfälle

Handynummer validieren

regex: ^1[3-9]\d{9}$

Wichtig: Anfang und Ende mit ^ und $ verankern, damit die gesamte Zeichenkette eine Handynummer ist und kein längerer Text, der die Nummer enthält. Die zweite Ziffer auf 3-9 zu beschränken entspricht den aktuellen Nummernbereichsregeln.

E-Mail validieren

regex: ^[\w.-]+@[\w.-]+.\w+$

Wichtig: Die vereinfachte Version reicht; eine strenge E-Mail-regex ist sehr komplex. In echten Projekten kombiniert man die vereinfachte Version mit dem Versand einer Bestätigungs-E-Mail als doppelte Absicherung.

Personalausweis validieren

regex: ^\d{17}[\dXx]$

Wichtig: 18 Zeichen, die ersten 17 sind Ziffern, das letzte eine Ziffer oder X. Diese regex prüft nur das Format, nicht die Prüfziffer.

URL validieren

regex: ^https?://[\w.-]+

Wichtig: beginnt mit http oder https, gefolgt von einer Domain. Vereinfachte Version; eine vollständige URL-regex ist extrem komplex.

Extraktionsfälle

Alle Handynummern extrahieren

regex: 1[3-9]\d{9}

Ohne ^ und $, um alle Handynummern im Text zu finden. Globale Übereinstimmung verwenden (Flag g).

Alle URLs extrahieren

regex: https?://[\w./?=&%-]+

Trifft auf URLs, die mit http(s) beginnen. Tatsächliche URL-Zeichen sind komplexer, Zeichensatz nach Bedarf anpassen.

Alle Beträge extrahieren

regex: [¥$]\d+(?:.\d+)?

Trifft auf Beträge, die mit ¥ oder $ beginnen, Nachkommastellen optional. Zum Beispiel ¥100, $99.9.

HTML-Tag-Inhalt extrahieren

regex: <a[^>]*>([^<]+)

Extrahiert den Text innerhalb des a-Tags. Die Klammern erfassen den Textinhalt. Beachten Sie, dass diese Art regex HTML nicht robust verarbeitet; bei komplexem HTML ist ein Parser zuverlässiger.

Ersetzungsfälle

Handynummer maskieren

Die mittleren 4 Ziffern durch Sternchen ersetzen: 1[3-9]\d{9} ersetzen unter Beibehaltung der ersten 3 und der letzten 4 Ziffern.

In der Praxis mit einfangenden Gruppen: regex (1[3-9]\d)\d{4}(\d{4}), ersetzen durch \1****\2. \1 und \2 verweisen auf die Gruppen.

Datumsformat vereinheitlichen

2026/07/12 in 2026-07-12 umwandeln: regex (\d{4})/(\d{2})/(\d{2}), ersetzen durch \1-\2-\3.

Überflüssige Leerzeichen entfernen

Mehrere aufeinanderfolgende Leerzeichen in eines umwandeln: regex \s+, ersetzen durch ein einzelnes Leerzeichen.

HTML-Tags entfernen

Alle HTML-Tags entfernen und nur Text behalten: regex <[^>]+>, ersetzen durch eine leere Zeichenkette. Beachten Sie, dass > innerhalb von Tag-Attributen verloren gehen; in komplexen Fällen einen Parser verwenden.

Debugging-Tipps

Schrittweise mit einem Test-Tool prüfen

Verwenden Sie das regex-Test-Tool:

  1. regex eingeben
  2. Testtext eingeben (mit Beispielen, die treffen und nicht treffen sollen)
  3. Hervorgehobene Treffer ansehen
  4. regex schrittweise anpassen, bis das Ergebnis stimmt

Zuerst treffen, dann optimieren

Schreiben Sie zuerst eine regex, die trifft, und denken Sie dann über Optimierung (Performance, Genauigkeit) nach. Streben Sie nicht sofort nach Perfektion.

Online regex visualisieren

Bei komplexen regex ein Visualisierungstool verwenden, um die Struktur zu zerlegen und die Bedeutung jedes Abschnitts zu klären.

Randfälle beachten

  • Leere Zeichenkette
  • Zeichenketten mit nur teilweiser Übereinstimmung
  • Zeichenketten mit Sonderzeichen
  • Sehr lange Zeichenketten

Wiederverwendbare regex-Muster

Chinesische Zeichen

[\u4e00-\u9fa5]+

Postleitzahl

^\d{6}$

QQ-Nummer

^[1-9]\d{4,10}$

Hexadezimale Farbe

^#[0-9a-fA-F]{6}$

Versionsnummer

^\d+.\d+.\d+$

Häufige Fallstricke

Gierige Übereinstimmung

.* trifft zu viel. Für den Tag-Inhalt [^<]+ statt .* verwenden, um übergreifende Treffer über mehrere Tags zu vermeiden.

Nicht escapte Sonderzeichen

Metazeichen wie Punkt, Stern, Fragezeichen müssen escaped werden. Für einen Backslash selbst \ schreiben.

Mehrzeilige Übereinstimmung

Standardmäßig trifft . nicht auf Zeilenumbrüche. Für mehrzeiligen Text den Einzeilenmodus aktivieren oder [\s\S] verwenden, um ein beliebiges Zeichen zu treffen.

Performance-Probleme

Catastrophic backtracking (katastrophales Zurückverfolgen): verschachtelte Quantoren wie (a+)+ können bei bestimmten Eingaben extrem langsam sein. Bei komplexen regex auf Performance achten; sehr lange Texte vor dem Matchen abschneiden.

Zusammenfassung

Die regex-Praxis teilt sich in drei Kategorien: Validierung, Extraktion und Ersetzung. Validierung nutzt die Anker ^ und $, Extraktion die globale Übereinstimmung, Ersetzung die Verweise auf einfangende Gruppen. Testen Sie regex zuerst mit einem Tool, dann optimieren. Merken Sie sich einige gängige Muster (Handynummer, E-Mail, Datum, URL) für den Alltag. Das regex-Test-Tool von DocsAll läuft im Browser: testen Sie beim Schreiben, Ihr Text wird nicht hochgeladen.

T
Timi Tian 创始人 / 全栈工程师

DocsAll 创始人,10 年全栈开发经验,专注浏览器端文档处理技术与隐私保护架构。前新加坡科技公司技术负责人。