Problem z dopasowaniem preg_match_all

0

Mam taki tekst:

<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:

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

Nie zwraca żadnego dopasowania, natomiast:

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

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

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".

0
preg_match_all('/TD(.*)TD/s', $table, $matches);
0
dzek69 napisał(a):
preg_match_all('/TD(.*)TD/s', $table, $matches);

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

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1