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 ().

Bedankt voor je heldere uitleg.
Mooi! Wil je de oplossing hier ook posten?
Goeie link trouwens.
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.
gewoon str_ireplace gebruiken?

dat is case sensitive

dus AlpHA & aLPha is hetzelfde
Wil je het volgende voorbeeld proberen?

Ik heb $contents gevuld met een teststring, maar die komt misschien niet helemaal overeen met de string die je zelf gebruikt.

<?php
$contents = "[style=bgColor #123456][/style]";
$contents = preg_replace("#\[style=(bgColor|fgColor|linkColor|vlinkColor)\s(\#[A-Fa-f0-6]{6}|[A-Za-z]*)\]\[\/style\]#","<script type=\'text/javascript\'>document.$1 = \'$2\'</script>",$contents);
echo $contents;
?>
@Burdy: Bij dat voorbeeld van jouw staat $contents totaal leeg.
@Erik: Hij is niet case insensitive in Options.
Waarom gebruik je # als die ook al in je expressie voorkomt?
Dat is dan een stuk minder handig dan // ;)
GreatSlovakia schreef op 31.12.2005 09:58
@Burdy: Bij dat voorbeeld van jouw staat $contents totaal leeg.
@Erik: Hij is niet case insensitive in Options.


Je ziet het resultaat ook niet op het scherm.
Je moet in de bron van je document kijken.

Als je wilt dat hij case insensitive matcht, moet je een i achter de laatste regexp-delimiter zetten. Dus iets als:

preg_replace("@moeilijke-regexp@i", "blabla", $contents);

Reageren