Das liebe Anführungszeichen
Veröffentlicht von Manu in Programmierung am 29-08-2008
Tags: Anführungszeichen, Problem, RegEx
5
Hi,
war heute mal wieder ein bisschen am PHP programmieren und hab mit RegExen rumgespielt. Ich wollte bestimmte Elemente, die in {$ $} eingschlossen waren (also z.B. {$test$}) finden und durch nichts ersetzen.
Dafür schrieb ich mir das folgende RegEx:
#{\$(.*?)\$}#
An sich ein kleines, schnuckeliges RegEx, was auch tadellos funktioniert, zumindest auf den ersten Blick.
Als PHP-Code sah das ganze zu erst so aus (vereinfacht):
public function replacetags($input) {
$regex = "#{\$(.*?)\$}#";
return preg_replace($regex, '', $input);
}
Doch hoppla, egal was ich in den Input stopfte, es wurden nie meine {$ $} gelöscht. Zuerst dachte ich, dass es doch an der RegEx lag, weswegen ich es mit dem RegEx-Tool getestet hab, dort funktionierte es allerdings tadellos. Nach langem Probieren habe ich aus den doppelten Anführungszeichen ( ” ) ein einfaches ( ‘ ) gemacht und schwupps, funktionierte alles ohne Probleme.
Ich bin immer noch am Überlegen, warum es mit den doppelten Anführungszeichen nicht funktioniert, wohl aber mit den einfachen. Falls jemand die Lösung weiß oder einen Tipp hat, nur her damit

