Andreas M.: Suche nach Ausdrücken mit preg_match_all

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

  1. 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
    
    1. 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