[PHP] preg_replace end-of-string $ klappt nicht



  • Hi,

    ich wollte mir $ als end-of-string zu Nutze machen. Geht aber nicht.

    $test = "Halli hallo, so und so";
    
    $test = preg_replace( '/so$/', "soooo", $test);
    

    So ersetzt er nicht. 😞 Wie-so?



  • ups, geht doch. Das Problem lag wo anders. Dass dieses minimale Codebeispiel dann doch funktionierte, hat mich auf das Problem gestoßen! 💡



  • Okay, jetzt habe ich aber ein getestetes Beispiel, was nicht klappt:

    $test = "hallo hallo du du<br/>";
    		$test = preg_replace("/ (hallo|du) /", " banane ", $test);
    		echo $test;
    

    Ausgabe: hallo banane du du

    Das ist natürlich Quatsch. Er soll das mittlere hallo und du ersetzen. Was mache ich jetzt? 😞



  • Okay, ich bin jetzt auf diese Boundaries gekommen.

    $test = "hallo hallo du du<br/>";
            $test = preg_replace("/\b(hallo|du)\b/", " banane ", $test);
            echo $test;
    

    Das klappt.

    Wenn ich jetzt aber statt hallo etwas mit Sonderzeichen habe, dann funktioniert es nicht mehr... Wie kann ich denn so etwas matchen? Z.B. hallo: statt hallo? 😞



  • ich weiß nicht, wo die Doppelpunkte stehen sollen. Drum hab ich sie einfach irgendwo hingemacht. Vielleicht hilft es ja dem Frosch im Web 😃

    $test = "hallo::: hallo: du du<br/>"; 
    $test = preg_replace("/\b(hallo|du)\b[:]*/", " banane ", $test); 
    echo $test;
    


  • Super. 🙂 Ich melde mich erst spät, daher liest Du das vielleicht nicht, aber das gefällt mir sehr gut! Dankeschön.


Anmelden zum Antworten