Dennis: Reguläre Ausdrücke

Beitrag lesen

Hi Tom,

Man müsste also irgendwie abprüfen, ob nach dem <td> => [^<] => <table[^>]> kommt, wenn ja, dann müsste man erst nach dem </table> (und dann </td>) suchen, sonst nach direkt nach dem </td>.

Gut, das habe ich jetzt soweit hingekriegt, klappt glaube ich auch:

$subregex = "/<td[^>]*>(?(?=[^<]*<table[^>]*)[^<]*<table[^>]*>[\w\W]*<\/table>[\w\W]*<\/td>|[\w\W]*<\/td>)/U";

Doch nun ist ein neues Problem aufgetaucht: Durch das </tr> von der inneren Tabelle wird der erste RegEx rausgebracht, und da beiße ich mir nun gerade die Zähne dran aus :-(

Erst hatte ich sowas in der Art (wollte einfach den subregex anpassen):
$regex = "/<tr[^>]*>(?(?=[\w\W]*<td[^>]*>[^<]*<table[^>]*>*)[\w\W]*<\/table>[\w\W]*|[\w\W]*)<\/tr>/U";

Das hat aber schon mal gar nicht geklappt, dann mein zweiter Versuch:
$regex = "/<tr[^>]*>[\w\W]*(<table[^>]*>[\w\W]*<\/table>[\w\W]*)*[\w\W]*<\/tr>/U";

Doch auch da bin ich mit dem Ungreedy ins Stecken gekommen....

Vielleicht kann irgendeiner von euch an dieser Stelle weitermachen ;-)

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
Bedeutung meines SelfCodes