Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [RegEx] Vertauschte Reihenfolge von Zeichen (https://www.delphipraxis.net/147408-%5Bregex%5D-vertauschte-reihenfolge-von-zeichen.html)

Matze 7. Feb 2010 20:38


[RegEx] Vertauschte Reihenfolge von Zeichen
 
Hi zusammen,

ich habe folgenden PHP-Code:

Code:
$url_in[] = "'(http://[^<>\"]*?/)index\.php\?page=([a-z_]*?)'";
$url_out[] = '$1/';
Die über preg_replace() zuveränderten URLs haben dieses Format:

Code:
http://domain.de/index.php?page=name
Die Ausgabe ist dann

Code:
http://domain.de//name
statt

Code:
http://domain.de/name/
Der Backslash am Ende wandert immer vor "name". Was mache ich falsch?

Grüße, Matze

Namenloser 7. Feb 2010 21:32

Re: [RegEx] Vertauschte Reihenfolge von Zeichen
 
Ich würde mal sagen, dass der Slash doppelt ist, liegt daran, dass er sich noch in der Klammer befindet :gruebel:
Code:
$url_in[] = "'(http://[^<>\"]*?)/index\.php\?page=([a-z_]*?)'";
Warum der Slash am Ende fehlt, weiß ich nicht. Insgesamt finde ich deinen Code etwas undurchsichtig... müsste die zweite Zeile nicht so lauten?
Code:
$url_out[] = '$1/$2/';

Khabarakh 7. Feb 2010 21:39

Re: [RegEx] Vertauschte Reihenfolge von Zeichen
 
Du sagst deiner zweiten Gruppe, dass sie ungreedy arbeiten soll, also macht sie das auch: Sie matcht überhaupt nichts :D .

Code:
$url_in[] = "'(http://[^<>\"]*?/)index\.php\?page=([a-z_]*)'";
$url_out[] = '$1$2/';
PS: mod_rewrite Marke Eigenbau ;) ?

Matze 7. Feb 2010 23:36

Re: [RegEx] Vertauschte Reihenfolge von Zeichen
 
Ah ok danke. Nun funktionert's. :)

Und ja, mod_rewrite Marke Eigenbau. Ich wüsste nicht, wie das so sonst geht? Gibt's da was einfacheres?


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