Wyrażenia regularne zawężanie wyniku


(Krzkaczor) #1

Hej!

Mam takie wyrażenie regularne:

Ono zwraca mi wszystkie liniki z danej strony (używam curl). Teraz chciałbym wyświetlić strony krórych adres jest w takiej postaci np.

http://example.pl/asdasd-as

dokładnie chodzi mi o: asdasd-as bo domene mogę wstawić na sztywno do wyrażenia. Więc jak wybrać tylko końcówkę strony zawierająca małe, duże litery, liczby i znak - ? Próbowałem czegoś takiego np.

a href="http://example.com/[a-zA-Z0-9\-]">

Ale to nie działa :confused:

Proszę o pomoc i pozdrawiam


(Damgora) #2
//

ew.

//

(tu dojdzie jeszcze znak _ )


(Krzkaczor) #3

Ok wielkie dzięki! Ale jeszcze jest problem. Nie wyraziłem się jasno bo chcę sobie pobrać te znaki (preg_match_all) a to nie działa w takim przypadku.


(Damgora) #4

Podaj kawałek ciągu do przeszukania. Testowałem z preg_match i krótkimi ciągami i działało. Może wystarczy zmienić kwantyfikator zachłanny na leniwy (+ na +?) - poprawiłem w poprzednim poście


(Krzkaczor) #5

No tak, próbuję zdobyć ze strony google.pl linki. Np. Wpisuję do google zapytanie 'problem' i chcę tylko linki z jakiejś tam strony + żeby nie miały po za domeną / w nazwie (lub w moim przypadku żeby miały tylko małe, duże litery, cyfry i znak -). Całe wyrażenie wygląda tak:

$pattern = '@

(.*?)

@'; if (preg_match_all($pattern, $source, $found)) print_r ($found);[/code]

No i niestety to nie działa. Udało mi się już wyłuskać ze strony linki (wszystkie a chcę bez /) ale chciałbym wszystko upchnąć w jednym wyrażeniu (jest sens?).

-- Dodane 07.08.2010 (So) 15:41 --

Ok, ogarnąłem :slight_smile: Wielkie dzięki za pomoc.