Thread RegEx-Frage (11 answers)
Opened by Gast at 2003-09-30 17:56

Strat
 2003-10-01 11:17
#59087 #59087
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Magic,01.10.2003, 07:23]Soweit, Sogut ich blicke zwar durch Strats geschreibsel noch nicht ganz durch, aber es hat schon einen Haken: Module. Das ganze sollte ohne Module von Statten gehen.[/quote]
warum keine Module? Regexp::Common und CGI sind Standardmodule, und HTML::Entities auch, wenn ich mich recht erinnere; und URI::Find brauchst du nur fuer das automatische verlinken von URLs (wenn du das nicht willst, einfach die Bloecke mit URI::Find und $uriFinder ersatzlos streichen).
Diese Module vereinfachen die Arbeit sehr, und beschuetzen dich davor, Fehler und Sicherheitsluecken reinzubringen.

Codeerklaerung:
Ganz oben werden drei Datenstrukturen initialisiert, die dann so der Reihe nach ersetzt werden:
1. Fixe Sachen, in denen nichts ersetzt werden soll, wie z.B. PERLE/CODE-Tags (%TagsBlocked/&PostFilterBlocked)
Der Output davon ist eine Liste, wo die code/perle-Bloecke als Referenzen gespeichert werden, damit sie nicht mehr weiter bearbeitet werden. Anderer Text wird einfach als Text gespeichert und spaeter noch bearbeitet.
2. %TagsFastReplace/&PostFilterFastReplace: Tags, die on the fly ersetzt werden sollen, und dabei aber auch eine beliebige Verschachtelung gestatten
3. %TagsLastReplace/&PostFilterLastReplace: Tags, die nach dem Ablauf ersetzt werden, weil sie z.B. auch code/perle-Bloecke enthalten koennen. Bei denen werden die "Tags" (z.B. Listen wie in $liste[4] temporaer durch [\0\0$tag] (z.B. $liste[\0\04] ersetzt, damit sie nicht erkannt werden, und nach der Ersetzung wird das \0\0 wieder entfernt.

Alle Klarheiten beseitigt? Wenn du nochwas nicht verstehst, brauche ich konkrete Fragen. Dieses Stueck Code habe ich mal als Test geschrieben, wie man das mit der Tagsersetzung fuer das neue Forum moeglichst sicher machen koennte.\n\n

<!--EDIT|Strat|1064993297-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread RegEx-Frage