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