![]() |
Frage zu Regulären Perl-Ausdrücken
Hallo!
Ich hab mal eine kurze Frage zu den Regulären Perl-Ausdrücken: Ich will folgenden String in PHP ersetzen:
Code:
Ich hätte das so gemacht:
[amazon="Das ist der Text"]123456789[/amazon]
Code:
Geht leider beides nicht. Wieso denn nicht?!
$text = preg_replace("#\[amazon=\\\"(.*?)\\\"\](.*?)\[/amazon\]#si", "[amazon:$uid=\\\"\\1\\\"]\\2[/amazon:$uid]", $text);
Auch so hab ichs schon Probiert: $text = preg_replace("#\[amazon=(\\\".*?\\\")\](.*?)\[/amazon\]#si", "[amazon:$uid=\\1]\\2[/amazon:$uid]", $text); Grüße Faux |
Re: Frage zu Regulären Perl-Ausdrücken
Also bei mir läuft dein Code:
Code:
<?php
$text = '[amazon="Das ist der Text"]123456789[/amazon]'; echo $text . ' '; $uid = '56483'; $text = preg_replace("#\[amazon=\\\"(.*?)\\\"\](.*?)\[/amazon\]#si", "[amazon:$uid=\\\"\\1\\\"]\\2[/amazon:$uid]", $text); echo $text; ?> Die Ausgabe [amazon="Das ist der Text"]123456789[/amazon] [amazon:56483=\"Das ist der Text\"]123456789[/amazon:56483] Ich würde dir aber empfehlen, für reguläre Ausdrücke nicht Doublequotes, sondern Hochkommas zu verwenden, da dann der reguläre Ausdruck besser lesbar wird (ich hasse Escapes :wink:). |
Re: Frage zu Regulären Perl-Ausdrücken
Also so in etwa:
Code:
Mit einfachen Hochkommata: sieht 1. viel besser aus, ist 2. besser lesbar und 3. sogar kürzer ;)
$regex = '/\[amazon="(.*)"\](.*)\[\/amazon\]/si';
$uid = 'deineuid'; $repl = '[amazon:' . $uid . '="\\1"]\\2[/amazon:' . $uid . ']'; echo preg_replace($regex, $repl, 'hfbcdbvsdbv [amazon="Das ist der Text"]123456789[/amazon] sdkivnbfb'); Gibt dann
Code:
Oder wolltest du die \" bei
hfbcdbvsdbv [amazon="Das ist der Text"]123456789[/amazon] sdkivnbfb
hfbcdbvsdbv [amazon:deineuid="Das ist der Text"]123456789[/amazon:deineuid] sdkivnbfb Zitat:
|
Re: Frage zu Regulären Perl-Ausdrücken
Danke für die Antworten.
Es lag nicht am Ausdruck. :mrgreen: Es lag daran, dass man \\\\\\" anstatt von \\\\\" schreiben hätte müssen, da phpBB das Tag [amazon="Text"] bevor es zu der entsprechenden Stelle kam, bereits backgequotet hat: [amazon=\"Text\"] :roll: Danke für die Hilfe. Zitat:
Grüße Faux |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz