Hallo Chactory!
Hat mein Trick also funktioniert!
Einen Fachbegriff eingeworfen und schon bleibt Dir die Spucke weg.
Ich bin diesbezüglich auch kein Profi und werfe jedes mal frustriert das Handtuch, wenn ich mal wieder versuche, tiefer in die (Anti-) Materie der Regular Expressions einzutauchen.
Zu meinem Problem respektive Beispiel:
Ich wollte eine Regular Expression für eine bestimmte Spamphrase erstellen.
- Code: Alles auswählen
Spam Zeile1
Spam Zeile2
Spammer arbeiten ja oft mit dem Trick, Spamwörter durch Einstreuen von Zusatzzeichen, Leerzeichen, Tabs und Zeilenvorschüben zu maskieren.
Genau das passiert in meinen o.g. Beispiel.
Zeile1 und Zeile2 sind eigentlich Teil einer Phrase, trotzdem wurde am Ende der Zeile1 eine neue Zeile forciert. ('ENTER' am Ende der Zeile drücken)
Es scheint hier ein großes Kuddelmuddel bzgl. Zeilenvorschub, Wagenrücklauf und Zeilenumbruch in der Computerwelt zu geben, speziell wenn es um die Implementierung in unterschiedlichen Betriebssystemen geht.
Im Programm The Regex Coach erkennt meine Regex
- Code: Alles auswählen
Spam Zeile1[\W\s_]?Spam Zeile2
diese Spamphrase.
Im Regelfilter funktioniert diese Erkennung aber nicht.
Die RegEx muss erweitert werden auf
- Code: Alles auswählen
Spam Zeile1[\W\s_]{0,2}Spam Zeile2
Die vom Regelfilter genutzte Boost Bibliothek sieht am Ende der Zeile anscheinend zwei Steuerzeichen, den CR (Carriage Return) und den LF (Linefeed), waehrend das Programm The Regex Coach das wohl eher also kombiniertes Steuerzeichen CRLF sieht.
Also, ein ziemliches Chaos!
Zum Glück ist dieses Problem nur beim Scannen von Multizeilen präsent, bei Headerfeldern sollte dies vollkommen irrelevant sein, da dort keine Zeilenumbrüche sein dürften.
Gruß
Quellcore