Re: [SAde] RE-Nachhilfe, HTML-Tags (Lösung)
Wolfram Schroeder <[email protected]> Wed, 15 Oct 2003 23:21:13 +0200
| Newsgroups | gmane.mail.spam.spamassassin.devel.de |
|---|---|
| Message-ID | <[email protected]> |
Ingo Wiarda schrieb: > <Korinthen title="Ebenfalls von der Regex betroffen:"> > > 1. <!-- Table of Contents --> > Nicht jeder Comment muß böse sein. > > 2. <blink><marquee> > Aber wer schickt schon seriöse Mail mit solchen Tags... > > 3. <?xml version=3D"1.0" encoding=3D"UTF-8"?> > Wird bei Test auf HTML wahrscheinlich ignoriert, oder? > > 4. Email-Adressen der Form "Joe Meier" <[email protected]> > (kommt theoretisch irgendwann mal vor) > > 5. <> bzw. <\s*> wird auch gematcht. Ist das Absicht? > > </Korinthen> Yo, rawbody WS_WEIRD_HTML /<(?:\/|(?!\/))(?!(?:!--\s+|\?XML|A|ABBR|ACRONYM|ADDRESS|APPLET|AREA|B|BASE|BASEFONT|BDO|BIG|BLOCKQUOTE|BODY|BR|BUTTON|CAPTION|CENTER|CITE|CODE|COL||COLGROUP|DD|DEL|DFN|DIR|DIV|DL|DT|EM|FIELDSET|FONT|FORM|FRAME|FRAMESET|H1|H2|H3|H4|H5|H6|HEAD|HR|HTML|I|IFRAME|IMG|INPUT|INS|ISINDEX|KBD|LABEL|LEGEND|LI|LINK|MAP|MENU|META|NOFRAMES|NOSCRIPT|OBJECT|OL|OPTGROUP|OPTION|P|PARAM|PRE|Q|S|SAMP|SCRIPT|SELECT|SMALL|SPAN|STRIKE|STRONG|STYLE|SUB|SUP|TABLE|TBODY|TD|TEXTAREA|TFOOT|TH|THEAD|TITLE|TR|TT|U|UL|VAR)\b)[^>]*>/i describe WS_WEIRD_HTML Nonexisting HTML-Tag score WS_WEIRD_HTML 0.1 Wenn Du Zeit findest, lass doch Dein Script bitte mal mit der RE laufen? 1. zurechtgehackt, ist aber nicht wirklich korrekt - das \b hat mich erwischt, weil !-- !~ /!\b.*/ (\b ist zwischen Buchstaben und irgendwas); 2. korrigiert - es fehlen wahrscheinlich noch weitere Tags, meine Liste ist vom W3C, Punkte für <marquee> und <blink> sollen aber andere Regeln setzen; 3. ich habe ?xml einfach mal dazu gepackt, da Du es ja anscheinend gefunden hast; 4. Kommen tatsächlich in Mails solche Mailadressen vor? Die RE würde eventuell ziemlich lahm werden, wenn ich das berücksichtigen müsste, vielleicht durch eine zusätzliche Alternative \w+\@[a-z0-9-.]{5,} - oder hast Du diese Form nur in From: und To: gefunden? 5. kann ich nicht nachvollziehen? <> und < > matchen beide, die Tagnamen sind ja nicht optional? Hier mein Testscript (die zu testenden String einfach eintippen): #!/usr/bin/perl while (<STDIN>) { if (/(<(?:\/|(?!\/))(?!(?:!--\s+|\?XML|A|ABBR|ACRONYM|ADDRESS|APPLET|AREA|B|BASE|BASEFONT|BDO|BIG|BLOCKQUOTE|BODY|BR|BUTTON|CAPTION|CENTER|CITE|CODE|COL||COLGROUP|DD|DEL|DFN|DIR|DIV|DL|DT|EM|FIELDSET|FONT|FORM|FRAME|FRAMESET|H1|H2|H3|H4|H5|H6|HEAD|HR|HTML|I|IFRAME|IMG|INPUT|INS|ISINDEX|KBD|LABEL|LEGEND|LI|LINK|MAP|MENU|META|NOFRAMES|NOSCRIPT|OBJECT|OL|OPTGROUP|OPTION|P|PARAM|PRE|Q|S|SAMP|SCRIPT|SELECT|SMALL|SPAN|STRIKE|STRONG|STYLE|SUB|SUP|TABLE|TBODY|TD|TEXTAREA|TFOOT|TH|THEAD|TITLE|TR|TT|U|UL|VAR)\b)[^>]*>)/i) { print $+; print " matched\n"; } } > Mal sehen, wie sich die Regel (in der angekündigten optimierten Form) bewährt. > > Ingo > Wenn Du schon ein script hast, kannst Du bestimmt ein "time " vor Deinen Aufruf setzen und mir Vergleichswerte für die Geschwindigkeit bei der RE oben und meinem Standardbeispiel /(?:top.{0,10}|sonder)aktion/i nennen? Später könnten wir vielleicht auch ein definitives Urteil über Optimierungen fällen, wäre nett! Bis dann, Wolfram ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php