![]() |
[RegEx] PHP-URLs ersetzen
Hallo,
ich habe URLs wie
Code:
Die soll nun ersetzt werden in
http://domain.de/index.php?get=foo
Code:
Das mache ich über folgende RegEx:
http://domain.de/foo/
Code:
Das ersetzt mir allerdings auch URLs, die weitere Parameter enthalten (bsp: ?get=foo&blubb=bla) und genau das möchte ich nicht. Wie muss ich meine RegEx ändern?
(http://[^<>"]*?/)index\.php\?get=([a-z_]*)
Die URL befindet sich übrigens mitten in einem String. Daher nützt mir ein "$" nichts. Schön wäre auch, wenn das ganze mit so einer URL gehen würde:
Code:
Also mit einem Unterverzeichnis. Doch das geht aktuell leider auch nicht.
http://localhost/website/index.php?get=foo
Grüße, Matze |
Re: [RegEx] PHP-URLs ersetzen
Versuche mal mit einem Lock-Before ein nachfolgendes & zu verbieten
Code:
Hey, ich glaub langsam versteh ich diese gemeinen RegEx-Dinger. :mrgreen:
(http://[^<>"]*?/)index\.php\?get=([a-z_]*)(?<!&)
|
Re: [RegEx] PHP-URLs ersetzen
Ne, das ändert leider nichts.
|
Re: [RegEx] PHP-URLs ersetzen
Code:
Stümmt, es war ja auch andersrum nötig -.-
(http://[^<>"]*?/)index\.php\?get=([a-z_]*)(?![&a-z_])
$1$2/ > ein Lock-Behind Und [a-z_] darf dann auch nicht vorkommen. Oder über die extrem gierige Variante.
Code:
(http://[^<>"]*?/)index\.php\?get=([a-z_]*+)(?!&)
|
Re: [RegEx] PHP-URLs ersetzen
Zitat:
![]() Dann ebem anders.
Code:
Achte hierbei aber auf den anderen ReplaceString
(http://[^<>"]*?/)index\.php\?get=([a-z_]*)([^&a-z_])
$1$2/$3 und am Textende darf der zu ersetzende URL-Teil auch nicht liegen. |
Re: [RegEx] PHP-URLs ersetzen
Zitat:
Problem dabei ist nur das Backtracking: Der Regex will dich ja nicht enttäuschen, also matcht er einfach nur "...?get=fo", schon steht dahinter kein "&" mehr :) . Machen wir ihn also wieder ein wenig dümmer durch eine Atomic Group:
Code:
(inkl. Unterverzeichnisse)
(?>(http://([^<>"]*?/)+)index\.php\?get=([a-z_])*)(?!&)
Edit: Jo, die Hälfte wurde ja schon gesagt... |
Re: [RegEx] PHP-URLs ersetzen
Danke für eure Hilfe. Es hat bei mir nicht funktioniert (vermutlich lag's an mir).
Mit iner anderen Lösung konnte ich mein Vorhaben jedoch umsetzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 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