Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Regex funktioniert nicht. (https://www.delphipraxis.net/77668-%5Bphp%5D-regex-funktioniert-nicht.html)

3_of_8 22. Sep 2006 19:45


[PHP] Regex funktioniert nicht.
 
Morgen.

Ich rufe folgendermaßen preg_replace auf:

Code:
      $text=preg_replace('#\['.$bbcode["code"].'\][^\[\]]*\[/'.
        $bbcode["code"].'\]#ise', '$tpl->parsebbcode(\''.$bbcode["replacement"].
        '\', \'$1\', \'\')', $text);
Dabei gibt es jetzt folgendes Problem:
Der zweite Parameter bei der Funktion $tpl->parsebbcode ist in diesem Fall "". Wenn ich statt $1 $0 schreibe, bekomme ich zumindest etwas, nämlich die gesamte gefundene Zeichenkette.

Was mache ich falsch?

Flocke 22. Sep 2006 22:12

Re: [PHP] Regex funktioniert nicht.
 
Ich sehe im regulären Ausdruck nirgendwo eine Klammer, auf die sich $1 beziehen könnte. Hast du die vielleicht vergessen?

alcaeus 22. Sep 2006 22:18

Re: [PHP] Regex funktioniert nicht.
 
:gruebel: schon mal ueberlegt dass es \\1 heisst?
Und ja, eine Klammer waer auch nicht schlecht :zwinker:

Greetz
alcaeus

3_of_8 22. Sep 2006 22:23

Re: [PHP] Regex funktioniert nicht.
 
Also unter PHP.net steht, dass man ab PHP 4 auch $n verwenden kann, dass $n sogar besser ist als \\n. Das mit der Klammer ist prinzipiell ne gute Idee. Ich dachte die $n bzw. \\n beziehen sich auf die eckigen Klammern.

Dax 22. Sep 2006 23:39

Re: [PHP] Regex funktioniert nicht.
 
Zitat:

Zitat von 3_of_8
Ich dachte die $n bzw. \\n beziehen sich auf die eckigen Klammern.

Neeee, das sind keine Matches, sondern Zeichenklassen :zwinker:

3_of_8 23. Sep 2006 00:01

Re: [PHP] Regex funktioniert nicht.
 
Jep, habs mittlerweile verstanden... Zumindest in der Theorie. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 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