Parsen einer HTML mit regulären Ausdrücken

Pseudo123

Grünschnabel
Hallo,

leider konnte ich bis jetzt keine saubere Lösung entwickeln.

Pattern: /([^<]+)|(?:<.*?class=([^ ]+).*?>(\w+)(<.*?class="([^ ]+?)".*?>(\w+?)<.*?>(\w+).*)*)/x
Haystack 1: <td class=x123 style='border-top:none;border-left:none'>abc<font class="font6">def</font><font class="font7">ghi</font>xxx</td>
Haystack 2: <td class=x123 style='border-top:none;border-left:none'>abc<font class="font6">def</font></td>
Haystack 3: <td class=x123 style='border-top:none;border-left:none'>abc</td>

Gewünschtes Resultat bei Haystack 1:
$font[0]['font'] = 'x123';
$font[0]['text'] = 'abc';
$font[1]['font'] = 'font6';
$font[1]['text'] = 'def';
$font[2]['font'] = 'font7';
$font[2]['text'] = 'ghi';
$font[3]['font'] = 'x123';
$font[3]['text'] = 'xxx';

Wie muss mein Pattern aussehen?

Es geht um eine Erweiterung der Anwendung, bin somit auf die regulären Ausdrücke angewiesen und habe keine Möglichkeit DOM zu verwenden, vielen Dank.

Viele Grüße
 
Zurück