Nexus86Medlem sedan okt. 20023 030 inlägg Har lite problem med ett reguljärt uttryck.
$text = eregi_replace("(<c>)([^&][^l][^t][^;][^c])*(</c>)", "<center>\\\\2</center>", $text);
Meningen är att den ska leta efter alla "<c>någon text</c>" i en sträng som jag använt htmlentities på och som inte innehåller en annan tagg som börjar på c (har nämligen bara den c-taggen). Felet med detta uttryck som jag har över är att den inte klarar mellanslag eller nya rader. :l
Några ideer?
Nexus86Medlem sedan okt. 20023 030 inlägg Har kommit en bit på väg. Har följande nu:
$text = eregi_replace("(<c>)((.|\n)*)(</c>)", "<center>\\\\2</center>", $text);
Den klarar alla tecken. Men den ser inte till att man inte bakar in en <c> inuti den hittade. Detta behövs för att annars byter den ut det första <c> mot <center> och det sista </c> mot </center>. Eller finns det någon bättre lösning?
Nexus86Medlem sedan okt. 20023 030 inlägg Lyckades få till det med följande uttryck. :)
$text = eregi_replace("(<c>)(([^&]|&([^l]|l([^t]|t([^;]|;([^c])))))*)(</c>)", "<center>\\\\2</center>", $text);