tag:forum.selfhtml.org,2005:/selfReg Ex für Mailfilter gesucht – SELFHTML-Forum2019-02-22T15:29:40Zhttps://forum.selfhtml.org/self/2019/feb/20/reg-ex-fuer-mailfilter-gesucht/1743049#m1743049Friedel2019-02-20T19:07:17Z2019-02-20T19:07:17ZReg Ex für Mailfilter gesucht<p>Hallo,
ich habe einen neuen Mailprovider und lege gerade neue Postfächer an. Bei diesem Provider habe ich die Möglichkeit "relativ einfach" mit Reg Ex Filter an zu legen.</p>
<p>Ich habe ein Postfach, das ausschließlich für die Kommunikation mit einer bestimmten Firma gedacht ist. Die Firma verwendet als Absenderadresse immer Adressen, die mit "@firmenname.de" enden. Jetzt möchte ich einen Filter anlegen, der alles andere rausfiltert.</p>
<p>Mit <code>@firmenname\.de$</code> wird alles von dieser Firma gefiltert. Ich möchte aber genau das Gegenteil. Alles außer <code>@firmenname\.de$</code> soll gefiltert werden. Wie kann ich das erreichen?</p>
https://forum.selfhtml.org/self/2019/feb/20/reg-ex-fuer-mailfilter-gesucht/1743050#m1743050Matthias Apselmatthias.apsel@selfhtml.orghttps://brückentage.info2019-02-20T19:16:50Z2019-02-20T19:25:58ZReg Ex für Mailfilter gesucht<p>Hallo Friedel,</p>
<blockquote>
<p>Mit <code>@firmenname\.de$</code> wird alles von dieser Firma gefiltert. Ich möchte aber genau das Gegenteil. Alles außer <code>@firmenname\.de$</code> soll gefiltert werden. Wie kann ich das erreichen?</p>
</blockquote>
<p>Nennt sich negative lookahead</p>
<pre><code class="block">^[^@]+(?!@firmenname\.de)$
</code></pre>
<p>Bis demnächst<br>
Matthias</p>
<div class="signature">-- <br>
Pantoffeltierchen haben keine Hobbys.
</div>
https://forum.selfhtml.org/self/2019/feb/20/reg-ex-fuer-mailfilter-gesucht/1743059#m1743059djr2019-02-20T22:22:44Z2019-02-20T22:22:44Z"Sieve" fürs Mailfiltern<p>Hallo <a href="/users/7069" class="mention registered-user" rel="noopener noreferrer">@Friedel</a>,</p>
<p>unterstützt Dein Mailprovider nicht auch <a href="https://de.m.wikipedia.org/wiki/Sieve" rel="nofollow noopener noreferrer">Sieve</a>?</p>
<p>Das währe einfacher (<a href="https://de.m.wikipedia.org/wiki/Sieve#Adressen-Matching" rel="nofollow noopener noreferrer">Adressen-Matching</a>)</p>
https://forum.selfhtml.org/self/2019/feb/20/reg-ex-fuer-mailfilter-gesucht/1743054#m1743054Friedel2019-02-20T19:29:52Z2019-02-20T19:29:52ZReg Ex für Mailfilter gesucht<p>Danke. Ich hab's zwar noch nicht ganz begriffen, aber mit dem Suchbegriff "negative lookahead" sollte das kein Problem mehr sein. Jedenfalls habe ich damit einige Erklärungen gefunden, die auf den ersten Blick gut aussehen.</p>
https://forum.selfhtml.org/self/2019/feb/20/reg-ex-fuer-mailfilter-gesucht/1743057#m1743057Rolf B2019-02-20T20:27:47Z2019-02-22T15:06:17ZReg Ex für Mailfilter gesucht<p>Hallo Matthias,</p>
<p>den Haken kann ich nicht wegnehmen, das kann nur Friedel. Drum hab ich ein Minus gesetzt.</p>
<p>Diese Regex funktioniert nicht.</p>
<p><code>^[^@]+(?!@firmenname\.de)$</code> bedeutet:</p>
<ol>
<li>Ab Beginn des Strings x (x=1...n) Zeichen, die nicht @ sind.</li>
<li>Nach diesen x Zeichen muss das Stringende folgen.</li>
<li>Nach diesen x Zeichen darf nicht @firmenname.de stehen.</li>
</ol>
<p>Problem 1: Satz 1 und 2 führen dazu, dass keine gültige Mailadresse matcht (weil die immer ein @ enthält)<br>
Problem 2: Der Punkt, ab dem der Lookahead schaut, ist das Stringende. Da steht niemals @firmenname.de</p>
<p>Entweder so: <code>^[^@]+@(?!firmenname\.de$)[^@]+$</code></p>
<ol>
<li>Ab Stringanfang 1-N Zeichen die kein @ sind</li>
<li>Dann ein @</li>
<li>Ab hier ein negative Lookahead: Es darf nicht firmenname.de und dann das String-Ende kommen</li>
<li>1-N Zeichen die kein @ sind</li>
</ol>
<p>Das $ im Lookahead ist wichtig, sonst würde aufdringlich@example.deals akzeptiert (wenn denn "example.de" die richtige Firmenadresse wäre.</p>
<p>Alternativ kann man mit einer Lookbehind-Assertion (?<!...) arbeiten, dann geht's so:</p>
<p>^.*(?<!@firmenname.de)$</p>
<p>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...</p>
<p>Regexe bauen, testen und lernen geht dank Herrn <a href="https://firasdib.com/blog/" rel="nofollow noopener noreferrer">Firas Dib</a> unter <a href="https://regex101.com" rel="noopener noreferrer">https://regex101.com</a></p>
<p><em>Rolf</em></p>
<div class="signature">-- <br>
sumpsi - posui - clusi
</div>
https://forum.selfhtml.org/self/2019/feb/20/reg-ex-fuer-mailfilter-gesucht/1743055#m1743055Matthias Apselmatthias.apsel@selfhtml.orghttps://brückentage.info2019-02-20T19:46:56Z2019-02-20T19:46:56ZReg Ex für Mailfilter gesucht<p>Hallo Friedel,</p>
<blockquote>
<p>Danke. Ich hab's zwar noch nicht ganz begriffen,</p>
</blockquote>
<blockquote>
<blockquote>
<p><code>^[^@]+(?!@firmenname\.de)$</code></p>
</blockquote>
</blockquote>
<p><code>^</code> - der Anfang der Zeichenkette</p>
<p><code>[^@]</code> - alle Zeichen außer das @<br>
<code>+</code> - mindestens 1 davon</p>
<p><code>(?!@firmenname\.de)</code> - alles außer @firmenname.de</p>
<p><code>$</code> - das Ende der Zeichenkette</p>
<p>Bis demnächst<br>
Matthias</p>
<div class="signature">-- <br>
Pantoffeltierchen haben keine Hobbys.
</div>
https://forum.selfhtml.org/self/2019/feb/20/reg-ex-fuer-mailfilter-gesucht/1743196#m1743196Friedel2019-02-22T15:29:40Z2019-02-22T15:29:40ZReg Ex für Mailfilter gesucht<p>Danke. Funktioniert sehr gut. <code>^.*(?<!@firmenname.de)$</code> ist das, was ich eigentlich wollte. <code>^[^@]+@(?!firmenname\.de$)[^@]+$</code> ist zwar von der Logik her was anderes, führt aber zum selben Ergebnis. Zumindest, wenn man es korrigiert. Natürlich muss es <code>^.*(?<!@firmenname\.de)$</code> heißen. Ich könnte mir Vorstellen, dass man sonst Beispiele konstruieren kann, bei denen es nicht funktioniert. Zumindest wenn der String, der hier durch "firmenname" ersetzt wurde, mindestens einen Punkt enthält.</p>
<blockquote>
<p>den Haken kann ich nicht wegnehmen, das kann nur Friedel.</p>
</blockquote>
<p>Aber jetzt brauche ich ihn ja nicht mehr weg zu nehmen . Mit deinem Beitrag war es einfacher, aber mit Hilfe des Suchbegriffs "negative lookahead" habe viele Infos gefunden, die mir geholfen haben und wohl auch zur Lösung geführt hätten.</p>