Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenie regularne - do pierwszego napotkanego zdefinowanego znaku
Forum PHP.pl > Forum > Przedszkole
nawasaqi
Mam pytanie mam wyrażenie regularne załóżmy:

  1. '#<p class="costam">\s*(.+?)\s*</p>\s*<datetime="(.+?)">.*<br>(.+?)#'


I teraz wszystko się powtarza załóżmy 30 razy czyli do tablicy wyciągam trzy wartości z (.+?). Ale mam problem z ta 3 wartością i użyciem .* czyli wiele znaków. Jak zrobić (zapisać) wyrażenie regularne by sprawdzało do pierwszego znalezienego znacznika <br> questionmark.gif? bo tych znaczników <br> jest mnóstwo w kodzie i skrypt leci przez wszystkie do ostatniego bo jest użyte .*. Jest jakiś zapis by tylko do pierwszego napotkanego == <br> questionmark.gif

Comandeer
.*?http://www.regular-expressions.info/repeat.html#lazy
by_ikar
Kod
.*?
nawasaqi
Coś mi to Panowie nie wychodzi... przykładowo html z forum:

  1. data-id="709" data-parent="0" data-em="0"
  2. id="opinion709" class="comment ">
  3.  
  4.  
  5. <section class="comment-body">
  6.  
  7.  
  8.  
  9. <article class="content">
  10. <div class="inner">
  11. <header class="header">
  12. <div class="c0">
  13. <p class="author">
  14.  
  15. jamjacek
  16.  
  17. </p>
  18. <time datetime="23.04.15, 21:08"> wczoraj </time>
  19.  


Tworzę wyrażenie regularne
  1. '#data-id="(.+?)".*?<p class="author">\s*(.+?)\s*</p>\s*<time datetime="(.+?)">#'



I nie chodzi coś robie źle ;(
Comandeer
A sprawdź co robi modyfikator s w regexach.

BTW muszę zapytać - próbowałeś kiedyś takie rzeczy robić przy użyciu DOM? wink.gif
nawasaqi
Więc tak znalazłem na czym wykrzacza się

  1. </div> <!-- .c0 -->
  2. <div class="c1">


<!-- .c0 --> Na lini komentarza mi nie chodzi wszędzie przed i po normalnie wsio pobiera. Nie wiem dlaczego ale własnie tutaj że tak powiem nie rozpoznaje tego i nie idzie dalej. Można to jakoś obejść questionmark.gif wink.gif
Bo ja to dodałem .*?<!-- .c0 --> .*? i chodzi wink.gif

Wiem że DOM jest do tego najlepszy ale nie znalazłem jak z rok temu szukałem może więcej jakiegoś przystępnego tut'ka i tak się rozmywło a to co robiłem działało wink.gif A ze ja tylko amatorsko dla siebie wszystko robię to mi to wystarcza i tak próbuje co chwilę czegoś nowego się poduczyć w php i mysql wink.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.