AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

BBCode parsen

Ein Thema von 3_of_8 · begonnen am 25. Sep 2006 · letzter Beitrag vom 25. Sep 2006
Antwort Antwort
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, 14: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
Green

Registriert seit: 11. Jun 2006
156 Beiträge
 
#2

Re: BBCode parsen

  Alt 25. Sep 2006, 18:37
Zitat von 3_of_8:
...
Wie kann ich das so hinkriegen, wie ich es will? Und wie verhindere ich, dass ein innerhalb eines geparst wird?
Wenn er das erste code findet ne bool setzen und dann bei jedem folgenden code nen zähler erhöhen. bei /code den Zähler verringern und wenn er wieder bei null ist, die box schliessen.
  Mit Zitat antworten Zitat
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
 
#3

Re: BBCode parsen

  Alt 25. Sep 2006, 19:04
Und wie mach ich das in ner Regex?
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
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#4

Re: BBCode parsen

  Alt 25. Sep 2006, 19:08
Auch wenns vieleicht nicht so richtig hier rein passt...

Vieleicht interessiert dich das hier: http://www.christian-seiler.de/projekte/php/bbcode/
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz