Frage zu Ersetzung mit reg. Ausdruck



  • Moin zusammen,

    bitte euch mal um Hilfe:

    Ich möchte in einer Zeichenkette mittels reg. Ausdruck Klammern ersetzen.

    Ich gebe mal ein Beispiel:

    "Das ist ein Text {ersetzen} und der ist toll".

    Was ich haben möchte ist "Das ist ein Text { ersetzen } und der ist toll".

    Und es sollen nur Klammern ersetzt werden, wenn nach denen ein Leerzeichen kommt.

    Mit folgendem Ausdruck kommt leider nur das raus:

    $text = preg_replace(array('/[\{][^ ]/','/[^ ][\}]/'), array('{ ',' }'), $text);

    "Das ist ein Text { rsetze } und der ist toll".

    Kann mir da jemand einen Tip geben?

    Danke.

    msp


  • Mod

    Dafuer reicht ein normales str_replace.

    PS:
    Deine regex macht was anderes als dein Text beschreibt. Erklaer nochmal bitte was du machen willst. Soll nach jeder Klammer ein Leerzeichen sein oder soll zwischen den Klammern kein Leerzeichen sein, oder was genau?



  • Es soll die klammer ersetzt werden, wenn alles andere ausser ein Leerzeichen folgt. Ersetzt durch eine klammer+leerzeichen. Gemeinheit ist, dass es öfters aufgerufen wird. Wenn jemand zu einen Text in ein Texturen eingibt mit klammer, dann soll nach dem abschicken jede klammer ein Leerzeichen dahinter haben. Wenn nun aber noch einmal gespeichert wird soll nur genau ein Leerzeichen nach der klammer stehen, nicht zwei

    Gruß
    Msp


Log in to reply