Avanceret regex
Hej,Jeg har en kode med et vilkårligt antal tabeller, der yderligere kan indeholde tabeller. Jeg ønsker så at sætte den yderste tabel ind i en div:
$str = "
<html>
<div>Noget HTML</div>
<table>
<tr>
<td>a</td>
<td>b</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>Tabel 1</td>
</tr>
</table>
</td>
<td>2</td>
</tr>
</table>
<b>Dette er en overskrift</b>
<table>
<tr>
<td>a</td>
<td>b</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
<div><i>Kursiv!</i></div>
</html>";
// Output skulle så gerne være følgende
<html>
<div>Noget HTML</div>
<div>
<table>
<tr>
<td>a</td>
<td>b</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>Tabel 1</td>
</tr>
</table>
</td>
<td>2</td>
</tr>
</table>
</div>
<b>Dette er en overskrift</b>
<div>
<table>
<tr>
<td>a</td>
<td>b</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</table>
</div>
<div><i>Kursiv!</i></div>
</html>
Jeg vil mene at et regex er løsningen, jeg ved dog ikke helt hvordan den skal udformes, da der jo kan være tabeller inde i den yderste tabel. Så det blev noget alá dette (hvilket IKKE tager højde for eventuelle tabeller):
preg_replace("{<table[^>]*>(.*?)</table>}i", "$1", $str);
