Die kurze Fassung
$1,$2setzen wieder ein, was die Klammern eingefangen haben, von links nach rechts.$0ist der ganze Treffer.- Ein leeres Replacement löscht, was gefunden wurde.
- Ersetzt wird jeder Treffer, nicht nur der erste.
- Groß und klein wird unterschieden, bis du Ignore case ankreuzt oder das Muster mit
(?i)beginnst. ^und$meinen Anfang und Ende des GANZEN Textes. Für Anker je Zeile beginn das Muster mit(?m).- Ein Punkt passt auf jedes Zeichen. Für einen echten Punkt schreib
\..
Muster zum Abschreiben
Jedes davon ist durch die Engine gelaufen, bevor es auf diese Seite kam, und die Spalte Beispiel ist das, was tatsächlich herauskam. Wo das Ergebnis auf mehreren Zeilen landet, zeigt die Spalte Beispiel diese Zeilen.
| Aufgabe | Pattern | Replacement | Beispiel |
|---|---|---|---|
| Hostname aus einem FQDN | ^([^.]+)\..*$ | $1 | servername.internal.domain.local → servername |
| Jede URL auf ihre Domain kürzen | ^https?://(?:www\.)?([^/\s?#]+).*$ | $1 | https://www.klipto.me/guides/regex-replace/?ref=x → klipto.me |
| Letztes Stück eines Pfades | .*/([^/]+)/?$ | $1 | /users/42/orders/8891/ → 8891 |
| E-Mail-Adresse aus einem Satz | .*?([\w.+-]+@[\w-]+\.[\w.]+).* | $1 | Write to [email protected] today → [email protected] |
| Datum umstellen | (\d{4})-(\d{2})-(\d{2}) | $3.$2.$1 | due 2026-09-18 → due 18.09.2026 |
| Nachname zuerst | ^(\w+)\s+(\w+)$ | $2, $1 | Antony Kors → Kors, Antony |
| Telefonnummer auf Ziffern | [^\d+] | (leer) | +1 (415) 555-0132 → +14155550132 |
| Nur die Zahl behalten | [^\d.] | (leer) | Total: $1,299.00 USD → 1299.00 |
| Listennummern weg | (?m)^\d+[.)]\s+ | (leer) | 1. Install Klipto → Install Klipto |
| Zeitstempel am Anfang weg | ^\[?(\d{2}:\d{2}:\d{2})\]?\s* | (leer) | [12:03:44] server restarted → server restarted |
| Reihen von Leerzeichen zusammenziehen | [ \t]{2,} | ein Leerzeichen | name value → name value |
| Leerzeichen am Zeilenende abschneiden | (?m)[ \t]+$ | (leer) | "total: 42 " → "total: 42" |
| Leerzeilen auf eine kürzen | \n{3,} | zwei Zeilenumbrüche | intro body → intro body |
| Typografische Anführungszeichen zu geraden | [“”‘’] | " | “hello” → "hello" |
| HTML-Tags entfernen | <[^>]+> | (leer) | <p>Hi <b>you</b></p> → Hi you |
| Markdown-Links auf ihren Text | \[([^\]]+)\]\([^)]+\) | $1 | see [the guide](https://klipto.me/x/) → see the guide |
| Komma-Liste zu einer Zeile je Eintrag | ,\s* | ein Zeilenumbruch | red, green, blue → red green blue |
| Ein Wort überall schreien lassen | (?i)\berror\b | ERROR | Error, then error → ERROR, then ERROR |
| Jeden Link aus einem Block werfen | \s*https?://\S+ | (leer) | read https://a.io/x then stop → read then stop |
| Die Daten in einem Protokoll finden | \d{4}-\d{2}-\d{2} | <date> | from 2026-09-18 to 2026-10-01 → from <date> to <date> |
| Die IPv4-Adressen in einem Protokoll finden | (?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?) | <ip> | from 10.0.0.1 to 192.168.247.209 → from <ip> to <ip> |
| Das # an Hex-Farben wieder anbringen | #?\b([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\b | #$1 | 4F46E5 and fff → #4F46E5 and #fff |
| Eine E-Mail fürs Bildschirmfoto maskieren | ([\w.+-])[\w.+-]*(@.*) | $1***$2 | [email protected] → a***@klipto.me |
| Das Aufzählungszeichen jeder Zeile abschneiden | (?m)^\s*[-*•]\s+ | (leer) | - ship the guide → ship the guide |
Wie man ein Muster liest
Zeichen stehen für sich selbst, bis sie es nicht tun. Buchstaben und Ziffern passen auf sich selbst. Diese zwölf tun etwas anderes: . ^ $ * + ? ( ) [ ] { } \ |. Ein Backslash davor meint das Zeichen selbst, \. ist also ein Punkt und \$ ein Dollarzeichen.
Eckige Klammern wählen aus einer Menge. [abc] ist einer dieser drei Buchstaben. [a-z] ist ein kleiner Buchstabe, [0-9] eine Ziffer. Ein ^ in den Klammern dreht es um: [^.] ist jedes Zeichen, das kein Punkt ist, und genau das lässt das Hostname-Muster am ersten Punkt aufhören.
Kürzel decken die häufigen Mengen ab. \d ist eine Ziffer, \w ein Buchstabe, eine Ziffer oder ein Unterstrich, \s ist Leerraum. Die Großbuchstaben sind das Gegenteil: \D ist alles, was keine Ziffer ist.
Quantoren sagen, wie viele. * ist keinmal oder öfter, + einmal oder öfter, ? keinmal oder einmal, {3} genau dreimal und {2,} zweimal oder öfter. Sie gelten für das Zeichen davor, \d{4} sind also vier Ziffern und [a-z]+ eine Reihe Buchstaben.
Gierig ist die Voreinstellung, und das ist die übliche Überraschung. .* nimmt so viel wie möglich und gibt nur zurück, was es muss. In <p>Hallo <b>du</b></p> passt <.*> auf die ganze Zeile statt auf ein Tag. Ein ? macht den Quantor genügsam: <.*?> hört beim ersten > auf. [^>]+ ist noch strenger und schneller, deshalb steht es im Rezept fürs Tag-Entfernen.
Runde Klammern fangen auch ein. Was in ( ) steht, wird gemerkt und kommt als $1, $2 und so weiter zurück, nummeriert nach der öffnenden Klammer. So dreht das Datums-Rezept drei Gruppen um, ohne das Datum zu kennen.
Anker heften den Treffer fest. ^ ist der Anfang, $ das Ende, und \b ist eine Wortgrenze, weshalb \berror\b das Wort errors in Ruhe lässt. In dieser Engine meinen ^ und $ von Haus aus Anfang und Ende des ganzen kopierten Textes. Ein Protokoll aus drei Zeilen ist eine Zeichenkette, ein Muster aus deinem Editor findet hier also womöglich nichts, bis (?m) davorsteht.
| heißt oder, und Klammern fassen es zusammen. (jpg|png|gif) passt auf jedes der drei. Ohne Klammern schluckten die Alternativen alles links und rechts davon.
Die Zeichen auf einen Blick. ^ Anfang, $ Ende, . jedes Zeichen, \d Ziffer, \D keine Ziffer, \w Buchstabe, Ziffer oder Unterstrich, \s Leerraum, + einmal oder öfter, * keinmal oder öfter, ? keinmal oder einmal, {2,} zweimal oder öfter, [abc] eines davon, [^abc] alles außer diesen, (…) einfangen, (?:…) gruppieren ohne einzufangen, \b Wortgrenze, | oder, \ das nächste Zeichen entwerten.
Muster zum Prüfen statt zum Ersetzen
Die bekanntesten regulären Ausdrücke sind Prüfer: Ist das eine E-Mail-Adresse, ist das eine echte IP. Ein Umwandlungs-Schritt ersetzt aber immer, ein Prüfer allein tut hier also nichts. Die Formen lohnen sich trotzdem, denn dasselbe Muster, das einen Wert prüft, holt ihn auch heraus oder maskiert ihn.
E-Mail. ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ist die alltägliche Prüfung: Wort, @, Domain, Punkt, Zone. Für einen Ersetzen-Schritt lass die Anker weg und fang stattdessen ein, wie es die E-Mail-Zeile in der Tabelle oben macht.
Telefon in E.164. ^\+?[1-9]\d{1,14}$ nimmt +79991234567 an und weist eine Nummer mit Leerzeichen ab. Um diese Form herzustellen statt sie zu prüfen, wirf mit [^\d+] alles andere weg.
Passwortstärke. ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$ verlangt acht Zeichen mit mindestens einem kleinen Buchstaben, einem großen und einer Ziffer. Die Teile (?=…) sind Vorausschauen: sie prüfen, ohne etwas zu verbrauchen, und nur so kann ein Muster drei Dinge auf einmal fordern.
IPv4, streng. (?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?) hält jedes Oktett zwischen 0 und 255. Achte auf die mittlere Alternative: 2[0-4]\d deckt 200 bis 249 ab, und eine Fassung mit 2[0-4][0-6] überspringt stillschweigend Adressen wie 192.168.247.209. Wenn der Text ein Protokoll ist und keine fremde Eingabe, reicht \b(?:\d{1,3}\.){3}\d{1,3}\b.
Hex-Farbe. #?\b([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\b passt auf #4F46E5 und auf fff, und die Gruppe ist da, damit eine Ersetzung sie alle auf eine Form bringen kann.
Zwei Fallen bei Mustern aus dem Netz. Die Anker: ^…$ meint den ganzen kopierten Text, ein Prüfer findet also nichts mitten in einem Satz, solange sie drinstehen. Und die Lage der Klammer: https?://([^/\s]+)\.[a-z]{2,} lässt die Zone außerhalb der Gruppe, $1 liefert also blog.klipto ohne das .me.
Die fünf Fehler, die einen Nachmittag kosten
.* hat die Zeile gefressen. Mach es genügsam mit .*?, oder sag, was du meinst, mit einer verneinten Menge wie [^>]+.
Die Anker haben nichts getan. (?m) an den Anfang des Musters, jedes Mal, wenn du zeilenweise arbeitest.
\1 in der Ersetzung. Das ist die Schreibweise von sed und Python. Hier heißt es $1, wie in JavaScript und Swift.
Ein Punkt ohne Backslash passte auf alles. 1.5 passt auch auf 125. Schreib 1\.5.
Groß und klein. Error ist nicht error. Kreuz Ignore case an oder schreib (?i) an den Anfang.
Wo du das eintippst
Klipto führt Regex-Ersetzungen auf dem Text aus, den du gerade kopiert hast, als Schritt in einem Umwandlungs-Chip. Einstellungen → Vorschau und Umwandlungen → Inhaltstyp wählen → eigene Umwandlung anlegen → Schritt hinzufügen → Regex-Ersetzen. Pattern und Replacement sind die zwei Felder, daneben sitzt das Kreuz für Ignore case, und darunter rechnet ein Feld die ganze Kette an deinem eigenen Beispiel mit, während du tippst.
Schritte laufen von oben nach unten, auf ein Regex kann also UPPERCASE folgen oder Un-HTML vorausgehen. Die Kette sitzt danach als Chip in der Vorschau. Umwandlungs-Chips beschreibt, wie du sie baust und ordnest.

Die Engine ist ICU, über NSRegularExpression, also die, die Swift und Objective-C auf dem Mac benutzen. Muster aus der JavaScript-Welt laufen fast immer unverändert. Muster aus sed oder Python brauchen $1 statt \1 in der Ersetzung.
Häufige Fragen
Was bedeutet $1 in der Ersetzung?
Es setzt wieder ein, was die erste Klammergruppe eingefangen hat. $2 ist die zweite Gruppe, $0 der ganze Treffer. Gruppen werden nach ihrer öffnenden Klammer von links nach rechts nummeriert.
Wie lösche ich Text, der auf ein Muster passt?
Lass das Feld Replacement leer. Jeder Treffer wird entfernt, und nichts kommt an seine Stelle.
Warum greift mein Muster nicht am Anfang jeder Zeile?
Von Haus aus hängen ^ und $ am ganzen Text. Schreib (?m) an den Anfang des Musters, dann hängen sie an jeder Zeile.
Heißt es $1 oder \1 in der Ersetzung?
Hier $1. Die Schreibweise mit Backslash gehört zu sed, Python und ein paar Editoren, und sie erschiene wörtlich im Ergebnis.
Wie treffe ich einen echten Punkt oder eine Klammer?
Mit einem Backslash davor: \., \(, \[. Ohne ihn passt ein Punkt auf jedes Zeichen, und Klammern bedeuten Gruppierung.
Weiterlesen
- Umwandlungs-Chips: wähl, was beim Einfügen erscheint
- Schreibweise und Anführungszeichen ohne regex
- Die Spuren aus KI-Text nehmen
- Zeilenumbrüche aus PDF-Text entfernen
Mach aus einem Muster einen Chip für das nächste Einfügen. Klipto laden.