Problem z dopasowaniem preg_match_all

Problem z dopasowaniem preg_match_all
DA
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam taki tekst:

Kopiuj
<TABLE cellSpacing=3 cellPadding=5 width="100%" border=0>
    <TBODY>
    <TR>
    <TD vAlign=top width="50%"><EM><STRONG>Tekst</STRONG></EM>Tekst<BR>
    <EM>Tekst</EM> Tekst<br>
    <EM>Tekst</EM> Tekst<br>
    <EM>Tekst</EM> Tekst
    </TD>
     
    <TD vAlign=top width="50%"><EM><STRONG>Tekst</STRONG></EM> Tekst<BR>
    <EM>Tekst</EM> Tekst<br>
    <A href="link"><EM>Tekst</EM> Tekst</A><br>
    <EM>Tekst</EM> Tekst<br>
    <EM>Tekst</EM> Tekst<br>
    <EM>Tekst</EM> Tekst<br>
    </TD></TR>
     
</TBODY></TABLE>

I nie rozumiem dlaczego:

Kopiuj
preg_match_all('/TD(.*)TD/', $table, $matches);

Nie zwraca żadnego dopasowania, natomiast:

Kopiuj
preg_match_all('/TD/', $table, $matches);

owszem. Proszę o przetestowanie tej zagadki, może ktoś mnie naprowadzi na rozwiązanie ;)

adf88
  • Rejestracja: dni
  • Ostatnio: dni
0

Musisz użyć trybu multiline (z tego co kojarzę trzeba dodać 'm' na końcu wzorca). W każdym razie szukaj informacji pod hasłem "multiline".

dzek69
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
0
Kopiuj
preg_match_all('/TD(.*)TD/s', $table, $matches);
Twardy
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
0
dzek69 napisał(a):
Kopiuj
preg_match_all('/TD(.*)TD/s', $table, $matches);

Do tego trzeba ograniczyć element zachłanności:

Kopiuj
preg_match_all('/TD(.*?)TD/s', $table, $matches);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.