Ein regulärer Ausdruck beschreibt, welcher Text gefunden werden soll. Statt einer einzelnen, genauen Formulierung geben Sie ein Muster vor: zum Beispiel das Wort „Anfrage“ und eine beliebige Nummer dahinter. Die Nummer kann sich von Nachricht zu Nachricht ändern, und das Muster findet trotzdem den gesuchten Abschnitt.
So lassen sich Datumsangaben, Links, einzelne Wörter, ganze Zeilen und fast alle Textkombinationen finden, die sich durch eine Regel beschreiben lassen. Mit wenigen einfachen Zeichen können Sie wechselnde Werte berücksichtigen, zwischen verschiedenen Varianten wählen und Unnötiges überspringen. Diese Suche bietet viel mehr Möglichkeiten als eine einfache Suche nach einem Wort.

Möglichkeiten regulärer Ausdrücke
Die Unterstützung regulärer Ausdrücke in den Filtern und Ersetzungen von FLOWIN ermöglicht es Ihnen:
- Beliebigen Text am Anfang oder Ende von Nachrichten einzufügen.
- Nachrichten mit Links zu filtern.
- Links, Telefonnummern, E-Mail-Adressen und andere Kontaktdaten aus kopierten Nachrichten zu entfernen.
- Lange Nachrichten oder umgekehrt nur kurze Nachrichten zu filtern.
Der Modus „Regexp“
In den Einstellungen eines Filters oder einer Ersetzung aktiviert der Modus „Regexp“ neben dem Feld „Suchen“ die Suche mit einem regulären Ausdruck. Das Muster selbst wird in dieses Feld eingegeben. Wie Sie eine Regel erstellen und auf eine Weiterleitung anwenden, beschreiben die Anleitungen zu Filtern und Ersetzungen.

Einen regulären Ausdruck lesen
Beginnen wir mit dem Muster Anfrage №\d+. Es findet sowohl Anfrage №125 als auch Anfrage №8072, obwohl die Nummern unterschiedlich sind. Lesen wir es von links nach rechts:
Anfrage №sucht genau diese Buchstaben, das Leerzeichen und das Nummernzeichen.\dsteht für eine beliebige Ziffer von 0 bis 9.+verlangt eine oder mehrere solcher Ziffern hintereinander.
Der gefundene Abschnitt wird als Treffer bezeichnet. In der Nachricht Anfrage №125 angenommen ist Anfrage №125 der Treffer; das Wort angenommen liegt außerhalb davon. In einem Filter hilft der Treffer festzustellen, ob die Nachricht die Bedingung erfüllt; bei einer Ersetzung gibt er an, welcher Abschnitt geändert werden soll.
Gewöhnliche Buchstaben und Leerzeichen im Muster werden genau so gesucht, wie sie dort stehen. Sonderzeichen legen Regeln fest. Im Folgenden werden die wichtigsten Zeichen erklärt; danach folgen fertige Beispiele für verschiedene Aufgaben.
Syntax regulärer Ausdrücke
Um reguläre Ausdrücke verwenden zu können, müssen Sie die Syntax kennen, also verstehen, wofür bestimmte Zeichen stehen.
Grundlegende Zeichen
^steht für den Anfang des Textes.$steht für das Ende des Textes..entspricht einem beliebigen Zeichen, einschließlich eines Zeilenumbruchs.\dentspricht einer Ziffer von 0 bis 9.\wentspricht einem lateinischen Buchstaben, einer Ziffer oder einem Unterstrich.\nsteht für einen Zeilenumbruch.\tsteht für einen Tabulator.\sentspricht einem gewöhnlichen Leerzeichen, einem Tabulator, einem Zeilenumbruch, einem Wagenrücklauf oder einem Seitenvorschub.\bprüft eine Wortgrenze, zum Beispiel zwischen einem Buchstaben und einem Leerzeichen. Es fügt dem Treffer selbst kein Zeichen hinzu.
Quantifizierer
Quantifizierer geben an, wie oft das Zeichen oder die Gruppe davor wiederholt wird. Eine Gruppe fasst mehrere Zeichen in runden Klammern zusammen.
*bedeutet null oder mehr Wiederholungen.+bedeutet eine oder mehr Wiederholungen.?bedeutet null oder eine Wiederholung.{5}bedeutet genau fünf Wiederholungen.{1,5}bedeutet eine bis fünf Wiederholungen.{1,}bedeutet eine oder mehr Wiederholungen.{0,5}bedeutet null bis fünf Wiederholungen.
Zum Beispiel:
a+entsprichta,aa,aaaund so weiter..*entspricht einem beliebigen Text, auch einem leeren.ab{3}entsprichtabbb.
Gruppen
Runde Klammern ( ) fassen Zeichen zu einer Gruppe zusammen. Gruppen werden meist mit Quantifizierern oder dem senkrechten Strich | verwendet, der für ein logisches ODER steht.
Zum Beispiel:
((Bob)|(Alice))entspricht sowohlBobals auchAlice.(abc){3}entsprichtabcabcabc.
Zeichenklassen
Mit eckigen Klammern [ ] geben Sie eine Menge von Zeichen an. Darin lassen sich Zeichen folgendermaßen aufführen:
[а-яё]entspricht einem beliebigen Buchstaben des russischen Alphabets.[абвгд]oder[а-д]entspricht einem der Buchstabenа,б,в,гoderд.[a-z]entspricht einem beliebigen lateinischen Buchstaben vonabisz.[0-5]entspricht einer beliebigen Ziffer von 0 bis 5.
Das Zeichen ^ am Anfang einer Zeichenklasse steht für ein logisches NICHT:
[^а-яё]entspricht jedem Zeichen außer einem Buchstaben des russischen Alphabets.[^a-z]entspricht jedem Zeichen außer einem lateinischen Buchstaben vonabisz.[^\s]entspricht jedem Zeichen, das nicht zu\sgehört.
In FLOWIN umfasst \w keine kyrillischen Zeichen. [а-яё] deckt das russische Alphabet einschließlich ё ab. Im Bereich [а-я] ist dieser Buchstabe nicht enthalten.
Zeichen maskieren
Soll ein Sonderzeichen als gewöhnlicher Text statt als Teil der Syntax behandelt werden, stellen Sie ihm einen umgekehrten Schrägstrich \ voran. Das nennt man Maskieren.
Zum Beispiel:
:\)entspricht:). Die Klammer steht hier für eine gewöhnliche Klammer und nicht für eine Gruppe.wer\?entsprichtwer?. Das Fragezeichen gibt hier keine Anzahl von Wiederholungen an.
Sucheinstellungen in FLOWIN
Flags ändern die allgemeinen Suchregeln: etwa, ob zwischen Groß- und Kleinbuchstaben unterschieden werden soll. In FLOWIN sind einige Einstellungen bereits aktiviert. Deshalb kann sich dasselbe Muster anders verhalten als in einem externen Tester mit Standardeinstellungen.
Die Flags sind bereits eingestellt
In Filtern und Ersetzungen sind IgnoreCase (i), Singleline (s), RE2 und Unicode aktiviert. Sie müssen sie nicht jedem Muster von Hand hinzufügen. Für die Praxis ist Folgendes wichtig:
ihebt die Unterscheidung zwischen Groß- und Kleinschreibung auf:hundfindet sowohlHundals auchHUND.serlaubt dem Punkt., auch einen Zeilenumbruch zu finden. Deshalb kann.*mehrere Zeilen auf einmal erfassen.- Der Mehrzeilenmodus
Multiline (m)ist standardmäßig ausgeschaltet:^und$beziehen sich auf den Anfang und das Ende der gesamten Nachricht, nicht jeder einzelnen Zeile. RE2legt Besonderheiten der Syntax fest:\dsucht die Ziffern 0–9 und\wnur lateinische Buchstaben, Ziffern und den Unterstrich. Auch bei aktiviertemUnicodeenthält\wkeine kyrillischen Zeichen.
Für die fertigen Beispiele unten müssen Sie nichts umschalten. Berücksichtigen Sie diese Einstellungen, wenn Sie die Muster in einem anderen Dienst prüfen: Gleiche Flag-Namen garantieren noch kein gleiches Verhalten verschiedener Regex-Engines.
Fertige Muster
Wählen Sie eine Aufgabe und kopieren Sie das Muster in das Feld „Suchen“ im Modus „Regexp“. Die Beispiele zeigen jeweils den tatsächlich gefundenen Text. Was danach mit der Nachricht geschieht, hängt vom eingerichteten Filter oder der Ersetzung ab.
Eine Anfragenummer, die sich jedes Mal ändert
Eine Anfrage finden, ohne ihre Nummer im Voraus zu kennen.
Muster:Anfrage №\d+
Text: Anfrage №125 angenommen. Anfrage №8072 wartet auf eine Antwort.
Gefunden werden: Anfrage №125, Anfrage №8072.
Der Text „Anfrage №“ bleibt gleich, während \d+ eine oder mehrere aufeinanderfolgende Ziffern findet. Auch das Leerzeichen vor № gehört zum Muster. „Anfrage №ABC“ passt nicht.
Eine Nachricht aus genau sechs Ziffern
Nachrichten auswählen, die einen Code mit genau sechs Ziffern enthalten.
Muster:^\d{6}$
Text: 482901
Gefunden wird: 482901.
Anfang und Ende begrenzen die gesamte Nachricht, und {6} legt sechs Ziffern fest. „Code: 482901“, „48290“ und „482901 “ mit einem Leerzeichen am Ende passen nicht.
Eine von mehreren Textvarianten
Nachrichten finden, in denen einer von zwei Statuswerten erwähnt wird.
Muster:fertig|abgebrochen
Text: Fertig: Datei gesendet. Eine andere Aufgabe wurde abgebrochen.
Gefunden werden: Fertig, abgebrochen.
Der senkrechte Strich bedeutet „oder“. Die Groß- und Kleinschreibung spielt keine Rolle. Ohne Wortgrenzen findet das Muster „fertig“ auch innerhalb von „fertigen“.
Ein ganzes Wort ohne Treffer innerhalb anderer Wörter
Das Wort „Hund“ finden und dabei „Hunde“ und „Seehund“ überspringen.
Muster:\bhund\b
Text: Hund, Hunde und Seehund.
Gefunden wird: Hund.
\b prüft auf beiden Seiten die Wortgrenzen. Leerzeichen und Satzzeichen können das Wort vom umgebenden Text trennen; sie selbst gehören nicht zum Treffer.
Ein Datum im Format Tag.Monat.Jahr
Ein Datum finden, bei dem Tag und Monat zweistellig und das Jahr vierstellig geschrieben sind.
Muster:\d{2}\.\d{2}\.\d{4}
Text: Termin am 16.10.2026 um 12:00.
Gefunden wird: 16.10.2026.
\. steht für einen gewöhnlichen Punkt, nicht für ein beliebiges Zeichen. Das Muster prüft die Schreibweise, nicht den Kalender: Auch „99.99.2026“ ergibt einen Treffer.
Hashtags auf Russisch und Englisch
Hashtags aus Buchstaben, Ziffern und Unterstrichen finden.
Muster:#[а-яёa-z0-9_]+
Text: #Новости #release_2 #всё_готово
Gefunden werden: #Новости, #release_2, #всё_готово.
Auf # folgen ein oder mehrere Zeichen aus der Zeichenklasse. Ein Leerzeichen oder Bindestrich beendet den Treffer: In „#план-дня“ wird nur „#план“ gefunden.
Erwähnungen in der Form @username
Text finden, der wie eine Erwähnung eines Nutzers oder Kanals aussieht.
Muster:@[a-z0-9_]{3,}
Text: Autor: @news_room. Noch einer: @ab.
Gefunden wird: @news_room.
Nach @ müssen mindestens drei lateinische Buchstaben, Ziffern oder Unterstriche folgen. Das Muster sucht nach der Schreibweise und prüft nicht, ob der Nutzer existiert. Es kann auch einen Teil einer E-Mail-Adresse finden.
Links mit http:// oder https://
Eine ausdrücklich angegebene Webadresse mit Protokoll finden.
Muster:https?:\/\/[^\s]+
Text: Öffnen Sie https://example.org/page und http://example.org
Gefunden werden: https://example.org/page, http://example.org.
Der Buchstabe s ist optional. Nach // erfasst das Muster alle Zeichen bis zum nächsten Leerzeichen oder einem anderen Trennzeichen aus \s. Eine Adresse ohne Protokoll passt nicht; ein Komma oder Punkt direkt hinter der Adresse kann dagegen zum Treffer gehören.
Eine Telefonnummer aus +7 und zehn Ziffern
Eine Nummer finden, die ohne Klammern, Leerzeichen und Bindestriche zusammengeschrieben ist.
Muster:\+7\d{10}
Text: Kontakt: +79991234567
Gefunden wird: +79991234567.
\+ sucht ein gewöhnliches Pluszeichen, und \d{10} legt genau zehn Ziffern nach der 7 fest. Die Schreibweise „+7 (999) 123-45-67“ passt nicht. Gesucht wird nach der Schreibweise; ob die Nummer existiert, wird nicht geprüft. Auch innerhalb einer längeren Ziffernfolge ist ein Treffer möglich.
Nachrichten, die mit einer bestimmten Kennzeichnung beginnen
Die Kennzeichnung „Wichtig:“ nur ganz am Anfang einer Nachricht finden.
Muster:^Wichtig:
Text: WICHTIG: Der Termin wurde verschoben.
Gefunden wird: WICHTIG:.
^ prüft den Anfang des gesamten Textes. In „Update: Wichtig: Der Termin wurde verschoben“ gibt es keinen Treffer. Auch die Kennzeichnung am Anfang der zweiten Zeile passt nicht, da der Mehrzeilenmodus standardmäßig ausgeschaltet ist.
Überflüssige Leerzeichen zwischen Wörtern
Zwei oder mehr gewöhnliche Leerzeichen hintereinander finden, um sie anschließend durch eines zu ersetzen.
Muster:[ ]{2,}
Im Text Text··mit···Leerzeichen werden zwei Gruppen gefunden: zwei und drei Leerzeichen. Das Zeichen · macht hier nur ein gewöhnliches Leerzeichen sichtbar; Sie müssen es nicht eingeben.
In den eckigen Klammern steht ein gewöhnliches Leerzeichen, und {2,} verlangt mindestens zwei davon hintereinander. Um überflüssige Leerzeichen zu entfernen, werden die gefundenen Abschnitte durch ein einzelnes Leerzeichen ersetzt. Zeilenumbrüche bleiben von diesem Muster unberührt.
Kurze Nachrichten mit bis zu hundert Zeichen
Nicht leere Nachrichten mit einer Länge von 1 bis 100 Zeichen auswählen.
Muster:^.{1,100}$
Text: Kurze Nachricht
Gefunden wird: Kurze Nachricht.
Der Punkt zählt beliebige Zeichen, auch Leerzeichen und Zeilenumbrüche. Die Klammern legen die Grenzen fest, während ^ und $ verlangen, die Nachricht als Ganzes zu prüfen. Eine leere Nachricht und ein Text mit mehr als 100 Zeichen passen nicht. Ein zusammengesetztes Emoji kann als mehrere Zeichen gezählt werden.
Die Liste wird weiter ergänzt. Vorschläge für neue Muster können Sie an den Support @value_maker senden.
Das eigene Muster prüfen
Auf regex101.com können Sie eigene reguläre Ausdrücke bequem prüfen. Die Sucheinstellungen dort können sich von denen in FLOWIN unterscheiden. Deshalb müssen Sie das Muster vor dem Einsatz in einer produktiven Weiterleitung mit Testnachrichten prüfen: mit einem erwarteten Treffer und ohne Treffer.
Häufige Fragen
Wann reichen „Text“ oder „Liste“, und wann ist „Regexp“ nötig?
Der Modus „Text“ eignet sich für eine bekannte Formulierung; mit „Liste“ lassen sich mehrere Varianten aufzählen. „Regexp“ wird benötigt, wenn sich der Text nach einer Regel ändert: zum Beispiel, wenn auf das Wort „Anfrage“ jedes Mal eine neue Nummer folgt. Damit lassen sich auch Wortgrenzen oder die Anzahl der Zeichen festlegen. Was mit der gefundenen Nachricht geschieht, wird separat im Filter oder in der Ersetzung eingestellt.
Warum funktioniert ein Ausdruck aus einem Online-Tester in FLOWIN anders?
Das Ergebnis hängt von der Regex-Engine und den Sucheinstellungen ab. In den Filtern und Ersetzungen von FLOWIN sind IgnoreCase, Singleline, RE2 und Unicode bereits aktiviert, während Multiline standardmäßig ausgeschaltet ist. Deshalb wird nicht zwischen Groß- und Kleinschreibung unterschieden, der Punkt kann einen Zeilenumbruch finden, und ^ sowie $ beziehen sich auf die gesamte Nachricht. Vergleichen Sie die Sucheinstellungen und prüfen Sie den Ausdruck in FLOWIN mit Nachrichten, bei denen Sie einen Treffer erwarten, und solchen ohne Treffer.
Warum erfasst .* mehrere Zeilen?
In FLOWIN ist Singleline aktiviert: Der Punkt entspricht auch einem Zeilenumbruch. Deshalb muss .* nicht am Ende der ersten Zeile aufhören. Wenn Sie Text bis zum nächsten Zeilenumbruch finden möchten, können Sie [^\r\n]+ verwenden: Dieses Muster sucht ein oder mehrere Zeichen außer Wagenrücklauf und Zeilenumbruch.
Warum findet \w keine russischen Buchstaben?
In den Sucheinstellungen von FLOWIN umfasst \w lateinische Buchstaben, Ziffern und den Unterstrich. Verwenden Sie für russische Buchstaben [а-яё] und für eine Folge solcher Buchstaben [а-яё]+. Den Buchstaben ё müssen Sie gesondert angeben: Der Bereich а-я enthält ihn nicht. Zwischen Groß- und Kleinbuchstaben müssen Sie nicht unterscheiden, da die Suche die Groß- und Kleinschreibung bereits ignoriert.
Wie findet man ein ganzes Wort statt eines Wortteils?
Fügen Sie auf beiden Seiten des Wortes \b hinzu. Zum Beispiel findet \bhund\b „Hund“ im Text „Hund, Hunde und Seehund“, überspringt aber die beiden anderen Wörter. Die Grenzen prüfen die Position des Wortes; Leerzeichen und Satzzeichen gehören nicht zum gefundenen Abschnitt.
Prüft das Datumsmuster aus dem Beispiel, ob dieses Datum existiert?
Nein. Der Ausdruck \d{2}\.\d{2}\.\d{4} prüft nur die Schreibweise: zwei Ziffern, Punkt, zwei Ziffern, Punkt und vier Ziffern. Deshalb findet er sowohl 16.10.2026 als auch 99.99.2026. Dieses Beispiel eignet sich dazu, Abschnitte zu finden, die wie ein Datum aussehen, bestätigt aber nicht, dass Tag und Monat gültig sind.
Was sollte man prüfen, wenn der reguläre Ausdruck nichts findet?
Stellen Sie zuerst sicher, dass neben dem Feld „Suchen“ der Modus „Regexp“ ausgewählt ist. Vergleichen Sie dann das Muster mit dem Ausgangstext: Auch Leerzeichen, Zeilenumbrüche und gewöhnliche Zeichen beeinflussen den Treffer. Zum Beispiel verlangt Anfrage №\d+ ein Leerzeichen vor № und Ziffern danach. Deshalb findet es weder Anfrage№125 noch Anfrage №ABC. Prüfen Sie auch die Grenzen ^ und $: Standardmäßig beziehen sie sich auf die gesamte Nachricht. Beginnen Sie mit einem einfachen Abschnitt und fügen Sie die Bedingungen einzeln hinzu. Prüfen Sie dabei jedes Mal das Ergebnis.