RegEx - Anpassungsproblem
meinz
- php
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
Kann mir jemand auf die Sprünge helfen?
Denke eher an /s statt an \s wenn du willst, das . auf \n matcht.
mfg Beat
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?
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