Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zaawansowany regex
Forum PHP.pl > Forum > PHP
karis
mam problem z wyciągnięciem wartości z następującego ciągu znaków:

Jakiś tekst / data
stałe pole 1
jakiś kod html
stałe pole 2
jakiś kod html
stałe pole 3
jakiś kod html
<TD NOWRAP class=st(.*) ALIGN=LEFT>
stala wartosc - (.*)
</TD>

<TD NOWRAP class=st(.*) ALIGN=LEFT>
dfgdfgdfgdfgdfg
</TD>
<TD NOWRAP class=st(.*) ALIGN=LEFT>
dfgdfg
</TD>
jakiś kod html

problem polega na tym ze pogrubiony fragment może się powtarzać i być obsadzony w innej kolejnosci, np jako drugi lub jako 3

musze z tego wyciągnąć datę, jeśli wystąpi ta stała wartość, która jest losowo obsadzona w bloku

dodam jeszcze ze caly powyzszy ciag jest powtarzany rowniez n razy
Spawnm
podziel na 2 mniejsze regexy - pierwszy sprawdza czy jest <td..> jeśli tak kolejnym wyciągasz datę.
karis
no tak robie tylko nie mam tego "uchwytu" o ktory moglbym sie oprzec przy wyciąganiu daty, nie moge wybrac tej daty, gdzie znajduje sie ta stała
Spawnm
Pokaż ten kod z którego musisz to wyciągać.
karis
z tej strony próbuję

http://gim3.tbg.net.pl/zastepstwa/zast_101004.html

wg tego czy jest napisane 2 g
Spawnm
no to daj explode na TR potem w pętli zwykłe strpos czy jest '2 g' jeśli tak wyciągasz datę. jak widać w td z datą pojawia się zawsze ten sam schemat co ułatwi wyciągnięcie regexem.
karis
chyba to się nie uda bo data jest w innym TR niż 2 g, jesli sie myle wyjasnij mi bardziej precyzyjnie

tutaj mogę się odwołać za pomocą czegoś akiego

  1.  
  2. $explode = explode('<TR>', $o);
  3. foreach($explode as $key=>$value)
  4. {
  5. $pos = strpos($value, '2 g');
  6.  
  7. if($pos)
  8. {
  9. preg_match_all($pattern3, $explode[$key-2], $match);
  10. echo $explode[$key-2];
  11. print_r($match);
  12. }
  13. else
  14. {
  15. echo 'dupa';
  16. }
  17. }
  18.  


ale nie wiadomo o ile jest odlegle wystąpienie 2 g od daty raz jest o 2 TR a raz o 3
Spawnm
Ale ty będziesz robić explode po <TD NOWRAP class=st1 COLSPAN=4 ALIGN=LEFT> , reszta zostaje smile.gif
karis
tutaj class się też zmienia

ok poprawiłem explode, ale wyszukuje rowniez te fragmenty, w ktorych nie ma 2 g
Spawnm
no to teraz pętla i strpos .
karis
pętla była wcześniej , teraz doszedłem do tego że explode tworzy mi tablice o jednym kluczu tylko i'm suprised

wstawiłem sobie count($explode) i zwraca mi to 1 ;o

gdzie w kodzie strony jest conajmniej kilka razy powtórzone i powinno mi zwracac kilka kluczy w tej tablicy
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.