Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z wyrażeniem regularnym
Forum PHP.pl > Forum > Przedszkole
dobmar
zwykle kiedy chciałem np. uzyskać dane z czegoś takiego <span =... >dane</span> to robiłem wyrażenie:

$wyrazenie = '/<span=...>([^<])<\/span>/'

a następnie używałem funkcji preg_match_all. Czyli zadałem początek np. span-a i "mówłem" zapisuj dane dopóki nie natrafisz na "<"

mój problem się jednak skomplikował ponieważ przeszukuję bardzo długi ciąg znaków w którym nie mogę wyodrębnić jakiegoś pojedynczego znaku który będzie kończył ciąg czyli np. "<". (bo w międzyczasie może tych znaków wystąpić 15)

Muszę "powiedzieć" pozwalaj na dowolny znak dopóki nie napotkasz pierwszy raz ciąg x gdzie, ciąg x = '<a name=produkt_roku';

Czy da się coś takiego osiągnąć? niestety nic w stylu '/.... ^<a name=produkt_roku... /' nie działa, ponieważ jak wiadomo '^' będzie dopasowywało ciąg do początku a jak umieszczę wszystko w nawiasach [] to z koleji będzie mi przeszukiwał każdą literkę z osobna....
nevt
  1. <?php
  2. $wyrazenie = '/<span=...>(.*?)</span>/s';
  3. ?>
dobmar
Co daje kombinacja kropki i pytajnika?
na końcu chodziło o pojedyńczą spację a więc ...\s/'?


NIestety zarówno w bibli php 5 jak i vademecum prof. wyrażenia regualrne nie są zbyt obszernie napisane gdyby ktoś miał jakąś obszerne opracowanie to byłbym wdzięczny za linka (najlepiej w PL)
mike
Proszę poprawić tytuł wątku na zgodny z zasadami pisania na forum Przedszkole.
dobmar
dzięki pomogło smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.