Thema: Delphi BBCode parsen

Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

BBCode parsen

  Alt 25. Sep 2006, 15:48
Morgen. Ich hab grad ein recht unschönes Problem damit, BBCodes zu parsen.

Angenommen ich habe folgenden Text:

Code:
[code]Blubb
[/code]asdf
Code:
[code]Blubb
[/code]

Daraus soll jetzt folgendes werden:

<div class="box">
Code:
Blubb
</div>

Wenn ich jetzt aber einfach sowas hier mache:
Code:
      $text=preg_replace('#\['.$bbcode["code"].'(=([^\]]*))?\](.*)\[/'.
        $bbcode["code"].'\]#ise', '$this->parsebbcode(\''.$bbcode["code"].
        '\', \''.$bbcode["replacement"].'\', \'$3\', \'$2\')', $text);
Dann parst das Ding:
<div class="box">
Code:
Blubb
[/code]asdf[code]
Code:
Blubb
</div>

Wenn ich den Operator bei (.*) non-greedy mache, parst er so:

<div class="box">
Code:
Blubb</div>
asdf<div class="box">
Code:
Blubb</div>
Wie kann ich das so hinkriegen, wie ich es will? Und wie verhindere ich, dass ein innerhalb eines geparst wird?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat