Door
GreatSlovakia
op 30-12-2005 19:31
gewijzigd op 30-12-2005 19:33
3.272 views
Ik heb de volgende regex samengestelt welke er voor zorgt dat alfa, beta of gamma wordt verplaatst door Delta, dus:
preg_replace("#(alfa|beta|gamma)?#"," Delta ", $var);
Nu wil ik er voor zorgen dat ook aLfa, ALfa, ALFA ect. kan worden opgemerkt.
P.S. Bij mijn script staat er nog veel meer in wat ik hier niet heb gekopieert aangezien dat het alleen 10x zo moeilijk zou maken.
Met het 'vreemde resultaat' bedoelde ik eigenlijk dat er niet het resultaat optrad zoals dat in de oorspronkelijke vraag aangegeven werd.
Dat vreemde resultaat werd veroorzaakt door het extra ? in de oorspronkelijke preg_replace.
Als je die weglaat werkt een en ander zoals verwacht.
Ik was echter aanvankelijk in de veronderstelling dat het veroorzaakt werd door de ().
Fout!!! Ik dacht dat het werkte, maar merk net dat het toch niet werkt :( :
$contents = preg_replace("#\[style=/(bgColor|fgColor|linkColor|vlinkColor)?/i\](\#([0-6a-fA-F]{6})|([a-zA-Z])*)\[/style\]#","<script type=\'text/javascript\'>document.$1 = \'$2\'</script>",$contents);
Dit is een wat minder versimpelde versie, maar het gekke is dat het volgende script wel werkt:
$contents = preg_replace("/(bgColor|fgColor|linkColor|vlinkColor)/i","COLOR",$contents);
En het enige ECHTE verschil is dat ik de hekjes heb weggelaten.