Suche nach Ausdrücken mit preg_match_all
Andreas M.
- php
Hallo
Mittels
preg_match_all("(http://[^ ]+)", $split[$i], $url);
suche ich in meinem String nach URL's. Dabei wird als URL indentifiziert, was sich zwischen http:// und dem nächsten Leerschlag befindet. Wie kann ich den Befehl nun erweitern, dass alles als URL identifiziert wird, was sich zwischen http:// und einem Leerschlag oder einem Punkt mit folgendem Leerschlag befindet?
Beispiel:
Schaue auf http://www.test.de vorbei. => ergibt http://www.test.de
Gehe auf http://www.test.de. => Ergibt jedoch http://www.test.de.
Beide Resultate sollten aber http://www.test.de ergeben.
Danke und Gruss, Andi
Moin!
preg_match_all("(http://[^ ]+)", $split[$i], $url);
>
> Beispiel:
> Schaue auf http://www.test.de vorbei. => ergibt http://www.test.de
> Gehe auf http://www.test.de. => Ergibt jedoch http://www.test.de.
>
> Beide Resultate sollten aber http://www.test.de ergeben.
Simple Lösung: Gefundene URL auf Endpunkt untersuchen und ggf. abschneiden. :)
Bessere Lösung: Den optionalen Punkt (null oder ein Punkt) in den Regex hineintun, außerhalb der Klammer.
- Sven Rautenberg
Vielen Dank für ihre Antwort. Die zweite Lösung gefällt mir besser, allerdings ist preg_match immer noch ein Mysterium für mich. Wie würde die Lösung konkret aussehen? Danke!
Moin!
preg_match_all("(http://[^ ]+)", $split[$i], $url);
> >
> > Beispiel:
> > Schaue auf http://www.test.de vorbei. => ergibt http://www.test.de
> > Gehe auf http://www.test.de. => Ergibt jedoch http://www.test.de.
> >
> > Beide Resultate sollten aber http://www.test.de ergeben.
>
> Simple Lösung: Gefundene URL auf Endpunkt untersuchen und ggf. abschneiden. :)
>
> Bessere Lösung: Den optionalen Punkt (null oder ein Punkt) in den Regex hineintun, außerhalb der Klammer.
>
> - Sven Rautenberg