Jag tänkte tillåta att man skriver viss html-kod i gästböker och dylikt. För att ha lite kontroll på det hela så började jag med att koda allt med htmlentities.
Min tanke är att sedan ersätta t.ex. <B> med <B>. Dessutom vill jag att de avslutar den korrekt. Detta har jag lyckat lösa med följande regexp:
Nu till första frågan: Jag vill ange flera taggar i samma regexp men vill att den ska avslutas korrekt, dvs jag vill att <B>text</B> och <I>text</I> ska tillåtas men inte <B>text</I>.
Detta skulle jag vilja göra ungefär så här men det fungerar inte eftersom \\1 bara fungerar i ersättningstexten.
Nästa problem: Jag vill kunna tillåta <UL><LI>Text</LI><LI>Text</LI><UL>.
Problemet om jag använder ovanstående konstruktion är att * är glupsk och sväller så mycket som mycket. Resultatet av (.*) blir därför Text</LI><LI>Text istället för bara Text. I Perl skriver man (.*?) tror jag men det fungerar inte. Det stod någonting om (U?) i manualen men jag fattade inte.
preg_replace("/([[i]ett mönster...[/i]]*?)/", "det vi ska byta regexp:en med, med eventuella bakåtreferenser som \\1 och \\2", "den sträng vi ska byta ut saker i");
\r Parse error
------------------ Ta dig i dalen och gör mig till spango