Versionen dieses Beitrags

Reg Ex für Mailfilter gesucht

Ts rot TS
  • Reg Ex für Mailfilter gesucht
  • Hallo Matthias,
  • den Haken kann ich nicht wegnehmen, das kann nur Friedel. Drum hab ich ein Minus gesetzt.
  • Diese Regex funktioniert nicht.
  • `^[^@]+(?!@firmenname\.de)$` bedeutet:
  • 1. Ab Beginn des Strings x (x=1...n) Zeichen, die nicht @ sind.
  • 2. Nach diesen x Zeichen muss das Stringende folgen.
  • 3. Nach diesen x Zeichen darf nicht @firmenname.de stehen.
  • Problem 1: Satz 1 und 2 führen dazu, dass keine gültige Mailadresse matcht (weil die immer ein @ enthält)
  • Problem 2: Der Punkt, ab dem der Lookahead schaut, ist das Stringende. Da steht niemals @firmenname.de
  • Entweder so: `^[^@]+@(?!firmenname\.de$)[^@]+$`
  • 1. Ab Stringanfang 1-N Zeichen die kein @ sind
  • 2. Dann ein @
  • 3. Ab hier ein negative Lookahead: Es darf nicht firmenname.de und dann das String-Ende kommen
  • 4. 1-N Zeichen die kein @ sind
  • Das $ im Lookahead ist wichtig, sonst würde aufdringlich@example.deals akzeptiert (wenn denn "example.de" die richtige Firmenadresse wäre.
  • Alternativ kann man mit einer Lookbehind-Assertion (?<!...) arbeiten, dann geht's so:
  • ^.*(?<!@firmenname\.de)$
  • Diese Regex matcht alles, was nicht mit @firmenname.de endet. Dass vor dem @ kein weiteres @ mehr stehen darf, wird ignoriert, ist auch nicht wichtig für die Filterung. Hoffe ich...
  • Regexe bauen, testen und lernen geht dank Herrn [Firas Dib](https://firasdib.com/blog/) unter <https:regex101.com>
  • Regexe bauen, testen und lernen geht dank Herrn [Firas Dib](https://firasdib.com/blog/) unter <https://regex101.com>
  • _Rolf_
  • --
  • sumpsi - posui - clusi

Reg Ex für Mailfilter gesucht

Thepoeppel crop Rolf B
  • Reg Ex für Mailfilter gesucht
  • Hallo Matthias,
  • den Haken kann ich nicht wegnehmen, das kann nur Friedel. Drum hab ich ein Minus gesetzt.
  • Diese Regex funktioniert nicht.
  • `^[^@]+(?!@firmenname\.de)$` bedeutet:
  • 1. Ab Beginn des Strings x (x=1...n) Zeichen, die nicht @ sind.
  • 2. Nach diesen x Zeichen muss das Stringende folgen.
  • 3. Nach diesen x Zeichen darf nicht @firmenname.de stehen.
  • Problem 1: Satz 1 und 2 führen dazu, dass keine gültige Mailadresse matcht (weil die immer ein @ enthält)
  • Problem 1: Satz 1 und 2 führen dazu, dass keine gültige Mailadresse matcht (weil die immer ein @ enthält)
  • Problem 2: Der Punkt, ab dem der Lookahead schaut, ist das Stringende. Da steht niemals @firmenname.de
  • Entweder so: `^[^@]+@(?!firmenname\.de$)[^@]+$`
  • 1. Ab Stringanfang 1-N Zeichen die kein @ sind
  • 2. Dann ein @
  • 3. Ab hier ein negative Lookahead: Es darf nicht firmenname.de und dann das String-Ende kommen
  • 4. 1-N Zeichen die kein @ sind
  • Das $ im Lookahead ist wichtig, sonst würde aufdringlich@example.deals akzeptiert (wenn denn "example.de" die richtige Firmenadresse wäre.
  • Alternativ kann man mit einer Lookbehind-Assertion (?<!...) arbeiten, dann geht's so:
  • ^.*(?<!@firmenname\.de)$
  • Diese Regex matcht alles, was nicht mit @firmenname.de endet. Dass vor dem @ kein weiteres @ mehr stehen darf, wird ignoriert, ist auch nicht wichtig für die Filterung. Hoffe ich...
  • Regexe bauen, testen und lernen geht dank Herrn [Firas Dib](https://firasdib.com/blog/) unter <https:regex101.com>
  • _Rolf_
  • --
  • sumpsi - posui - clusi