Thread RegEx: Über mehrere Zeilen suchen (3 answers)
Opened by Lightman at 2007-07-24 22:34

Lightman
 2007-07-24 22:34
#78809 #78809
User since
2007-01-31
57 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich möchte Strings der Form
Code: (dl )
1
2
3
4
5
6
7
8
[% loop $name %]

...
<h1>$title</h1>
<p>$content</p>
...

[% end %]


untersuchen. Dabei stellt $name den Namen der Loop dar und alles zwischen [% loop $name %] und [% end %] den Inhalt. Diesen möchte ich rausfiltern und in einem nächsten Schritt nach $xyz parsen.

Mein Problem: Wie kann ich den Inhalt heraustrennen? Mein Ansatz:
Code: (dl )
1
2
3
4
5
6
7
($x = $string) =~ s/
       \[% \s* loop \s* \$ (\S+?) \s* %\] # [% loop $name %]
       (\.*?)                             # Alles mögliche, will ich haben
       \[% \s* end \s* %\]                # [% end %]
   /
       $2 if $1 eq $name
   /xms;


Klappt aber leider nicht. Was muss verändert werden? Was könnte man besser machen?

(Btw: Bitte keine Hinweise zu CPAN-Modulen. Ich bin mir dessen bewusst, dass ich mir unnötige Arbeit mache. ;) )\n\n

<!--EDIT|Lightman|1185302173-->

View full thread RegEx: Über mehrere Zeilen suchen