Reguläre Ausdrücke

Es passt vielleicht nicht wirklich in ein Forum das sich um das Yii Framework dreht, jedoch benutzt ihr sicherlich auch reguläre Ausdrücke und genau da komme ich nicht weiter.

Ich würde gerne alle Zeichen durch ein Leerzeichen ersetzen lassen, die nicht in meinem definierten Bereich befinden.


$sWord = "Hallo wie geht es dir heute éÈè á à `c";

preg_match("/^[a-zA-ZčćšđžČĆŠĐŽöäüßÖÄÜ\-\.\,\;\:\_\!\?\=\ ]+/", $sWord, $aWord );


gewünschte Antwort: "Hallo wie geht es dir heute";

Verwend doch preg_replace. Außerdem ist es (auch aus Security-Gesichtspunkten) einfacher, die Sache umgekehrt anzugehen: Gib nicht alle Zeichen an, die nicht erlaubt sind (das können seeeeehr sehr viele sein ;) ), sondern diejenigen, die erlaubt sind, und negiere das ganze mit einem ^ am Anfang deiner Zeichengruppe []. Nützlich ist evtl. auch noch der Modifier u um das Ganze UTF-8 sicher zu machen.


$aWord=preg_replace('/[^\w]/u','',$sWord);