1
Hallo!
Ich habe das Forum gerade erst entdeckt. Seit ganz kurzem beschäftige ich mich mit Regulären Ausdrücken, mit PHP auch noch nicht besonders lange. Dadurch war ich mir nicht sicher, welche Funktion für welchen Zweck paßt. Darum habe ich sie mal ausprobiert und festgestellt, daß ein und der selbe Reguläre Ausdruck wohl von preg_match_all() ganz anders als von preg_replace() interpretiert wird. Kann das sein?
Mein Regulärer Ausdruck soll URI innerhalb eines beliebigen, längeren Textes erkennen können. Schließlich möchte ich dann noch einen klickbaren Link daraus machen, ohne BB-Code im Text haben zu müssen. Bei einem meiner Versuche funktionierte das zwar und darum dachte ich das komische Verhalten müsse an meinem RegEx liegen, aber es funktionierte nur bis zur Topleveldomain, also machte ich einen Versuch, um mögliche Unterverzeichnisse anzuhängen. Also ich verändere den RegEx immer wieder. Aber jedes Mal wird das Verhalten noch seltsamer.
Seltsam heißt beispielsweise, daß eine Ersetzung doppelt oder sogar vierfach vorgenommen wird (preg_match_all) oder der Link nur einen Teil der URL enthält (preg_replace).
Also habe ich die Frage, ob solches Verhalten für PHP normal ist und außerdem ob jemand einen brauchbaren und sämtliche möglichen URI einschließenden Regulären Ausdruck kennt?
Ranma
Ich habe das Forum gerade erst entdeckt. Seit ganz kurzem beschäftige ich mich mit Regulären Ausdrücken, mit PHP auch noch nicht besonders lange. Dadurch war ich mir nicht sicher, welche Funktion für welchen Zweck paßt. Darum habe ich sie mal ausprobiert und festgestellt, daß ein und der selbe Reguläre Ausdruck wohl von preg_match_all() ganz anders als von preg_replace() interpretiert wird. Kann das sein?
Mein Regulärer Ausdruck soll URI innerhalb eines beliebigen, längeren Textes erkennen können. Schließlich möchte ich dann noch einen klickbaren Link daraus machen, ohne BB-Code im Text haben zu müssen. Bei einem meiner Versuche funktionierte das zwar und darum dachte ich das komische Verhalten müsse an meinem RegEx liegen, aber es funktionierte nur bis zur Topleveldomain, also machte ich einen Versuch, um mögliche Unterverzeichnisse anzuhängen. Also ich verändere den RegEx immer wieder. Aber jedes Mal wird das Verhalten noch seltsamer.
Seltsam heißt beispielsweise, daß eine Ersetzung doppelt oder sogar vierfach vorgenommen wird (preg_match_all) oder der Link nur einen Teil der URL enthält (preg_replace).
Also habe ich die Frage, ob solches Verhalten für PHP normal ist und außerdem ob jemand einen brauchbaren und sämtliche möglichen URI einschließenden Regulären Ausdruck kennt?
Ranma