Alexander Foken: RegExp gesucht...

Beitrag lesen

Moin Moin !

Aehm...
es handelt sich um eine legetime HTML-aehnliche SPrachsyntax, die mit Hilfe von perl geparst werden soll.

Ja sicher, das bestreite ich gar nicht. Hast Du Dir das ausgedacht oder mußt Du mit dem Format leben?

Fall 1: Denke noch mal nach.

Fall 2: lies weiter. ;-)

Ein echtes Beispiel, welches dann garnicht mehr so bescheuert waere, könnte so aussehen:
<include type="query" value="SELECT id FROM maintable WHERE name="test">

Jau, und schon fällt Dein Parser auf die Nase, weil der Value nicht terminiert ist. Zähl mal die Gänsefüßchen ...

oder:
<if ((name="test") && (value =~ "<h1>"))>
<endif>

Du weißt, daß es für Perl eine fertige Template-Engine gibt?

Finite-State-Machine :)

genau.

Nun, ich muss auch sagen, ich hab es teilweise schon genauso geloest dass ich 2 while()-Schleifen hintereinander habe und dann etwas genauer rein schau ob die Syntax der Ausdruecke passt.
Aber das schaut dann halt etwas bloed aus und ich denke, es müsste etwas kürzeres geben.

Bei der Syntax nicht. Wenn Du etwas dichter an HTML arbeitest, geht es:

<demo name="foo.html" value="<html><body><h1 align="center">Hallo</h1>Quotes (&quot;) schreibt man in HTML als &amp;quot;.<html>">

HTML-Escaping und Deescaping kannst Du z.B. im CGI-Modul borgen, der Code ist sehr sauber und schnell zu kopieren.

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"