Alex: RegEx: zitierten Text formatieren

Hallo,

ich bin gerade am Rumprobieren, um eine RegEx zu finden, die zitierten Text so wie hier im Forum formatiert.

Ich habe also meinen Text in der variable $text. Wenn in diesem Text zu Beginn der Zeile "»»" steht soll die zeile in "<span class="zitat">»» Zeile</span>" umgewandelt werden.

Kann mir jemad helfen?

Danke im Voraus und Grüße
Alex

  1. Moin

    Ich habe also meinen Text in der variable $text. Wenn in diesem Text zu Beginn der Zeile "»»" steht soll die zeile in "<span class="zitat">»» Zeile</span>" umgewandelt werden.

    $text = preg_replace("/^»»\s+(.*)/", "<span class="zitat">\1</span>", trim($text));

    Ciao,

    Harry

    1. Hallo,

      $text = preg_replace("/^»»\s+(.*)/", "<span class="zitat">\1</span>", trim($text));

      ...hm, das ersetzt nur ein "»»" am Anfang des Textes, oder? Was, wenn in der x. Zeile "»»" steht?

      Grüße, Alex

      1. Hallo,

        $text = preg_replace("/^»»\s+(.*)/", "<span class="zitat">\1</span>", trim($text));

        ...hm, das ersetzt nur ein "»»" am Anfang des Textes, oder? Was, wenn in der x. Zeile "»»" steht?

        Der ersetzt gar nix ;) Vor dem "s" fehlt nämlich noch's zweiter "" (sch* Anführungszeichen ...)

        Du kannst den regulären Ausdruck ja einfach auf jede Zeile anwenden ;)

        Ansonsten: "/\n»»\s+(.*)\n/" (oder so ?!)

        Ciao,

        Harry

        1. Hallo,

          OK, "/\n»»\s+(.*)/" scheint alle "»»" an Zeilenanfängen zu finden, nicht aber am Anfang des Textes. Das macht "/^»»\s+(.*)/". Kann man die beiden nun irgendwie zusammenfassen?

          Danke & Grüße, Alex

          1. Seasn,

            OK, "/\n»»\s+(.*)/" scheint alle "»»" an Zeilenanfängen zu finden, nicht aber am Anfang des Textes. Das macht "/^»»\s+(.*)/". Kann man die beiden nun irgendwie zusammenfassen?

            Freilich:

            $text = preg_replace("/(^|\n)»»\s+(.*)/", "<span class="zitat">\2</span>", trim($text));

            Ciao,

            Harry

            1. Hallo,

              vielen Dank!

              Grüße, Alex