Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyrażenie regularne - przechywtywanie do momentu napotkania wzorca
fiasko
post 3.05.2011, 01:07:32
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

Ostrzeżenie: (0%)
-----


Mam taki oto ciąg :

  1. $body ='<td style="background: url(images/obrazek.jpg); background-repeat: repeat-y; " valign="top" rowspan="9">
  2. ssdfs ssdfs ssdfs ssdfs
  3. </td>'
  4. $dopasowanie = '/<td[\s]{0,2000}style="background\:[\s]{0,2000}url\(([^>]+?)<\/td>/';
  5. preg_match_all($dopasowanie, $body , $rezultat );
  6.  


problem jest tu ([^>]+?) - nie wiem jak ująć dopasowanie do wystąpienia wzorca td>

powinno być coś takiego ([^td>]+?) - ale to nie jest poprawna forma ujęcia wzorca i nie mogę przechwycić tego całego ciągu. Przez to dopasowanie napotyka problem z wystąpieniem znaku > który występuje tuż za rowspan="9". Jego usunięcie oczwyiśccie powoduje , że wyrażenia działa poprawnie.

Jak poprawnie napisać dopełnienie wzorca td> a nie zanku > ?


Go to the top of the page
+Quote Post
szagi3891
post 3.05.2011, 16:13:00
Post #2





Grupa: Zarejestrowani
Postów: 109
Pomógł: 9
Dołączył: 12.03.2007
Skąd: kraków/tarnobrzeg/baranów/suchorzów

Ostrzeżenie: (0%)
-----


Ja bym najpierw doradzał wyszukać wystąpienia znaczników td a dopiero potem dalsze podwyszukiwania. A tak żeby już w ogóle było dobrze to xpath najlepiej sprawdza się do przeszukiwania dokumentów xml. (html musi być poprawnym xml, czyli wystarczy żeby był poprawny xhtml).

  1. $all = '[^<>]*';
  2.  
  3. $q1 = preg_quote('<td', '/') . $all . preg_quote('>', '/');
  4. $q2 = preg_quote('</td>', '/');
  5.  
  6. $dopasowanie = '/' . $q1 . $all . $q2 . '/';
  7.  
  8. preg_match_all($dopasowanie, $body, $rezultat);
  9.  
  10.  
  11. print $dopasowanie . "\n\n";
  12.  
  13. print '<pre>';
  14. print_r($rezultat);
  15. print '</pre>';


--------------------

Każdy z was jest łodzią w której
Może się z potopem mierzyć
Cało wyjść z burzowej chmury
Musi tylko w to uwierzyć!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 01:39