meinz: RegEx - Anpassungsproblem

Hallo,

ich verwende folgenden RegEx um meinem Bekannten Zitate in seinen Texten zu ermöglichen:
/[zitat=(.+?)](.+?)[/zitat]/
Das funktioniert auch im groben und ganzen wie gewünscht und mit preg_replace kann ich da was schönes basteln. Doch wies nun mal so ist, kommt mein Bekannter gleich mal mit einem Fall, den ich nicht matchen kann: Zeilenumbrüche im Zitat-Text.

Ich dachte sofort an \s doch verlassen mich dort meine gering vorhandenen RegEx-Kenntnisse:
Mein Versuch:
/[zitat=(.+?)]([\s.]+?)[/zitat]/
also als Zeichenklasse [\s.]
scheiterte.

Kann  mir jemand auf die Sprünge helfen?

Grüle

  1. Kann  mir jemand auf die Sprünge helfen?

    Denke eher an /s statt an \s wenn du willst, das . auf \n matcht.

    mfg Beat

    --
    Woran ich arbeite:
    X-Torah
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    1. Hallo,

      dann matcht . aber immer auf alles. Im ersten Teil, also beim Namen des zitierten sollen ja keine \n gematcht werden.

      Wie erstelle ich denn korrekt die Zeichenklasse für . und whitespaces.

      P.S.: Gibt es eine Zeichenklasse für alles außer whitespaces ebenfalls?

      1. Hi,

        Wie erstelle ich denn korrekt die Zeichenklasse für . und whitespaces.

        schlecht ohne den Modifikator. Eine negierte Klasse sollte aber gehen, z.B.:
        /[zitat=(.+?)]([^]])+)[/zitat]/

        P.S.: Gibt es eine Zeichenklasse für alles außer whitespaces ebenfalls?

        \S oder [^\s].

        freundliche Grüße
        Ingo