Hallo pixxelschubser,
das liegt daran, dass ich mich von
einschalten per ... oder auch mit (?-m)
habe verleiten lassen,
(?-m)(\[\[kursiv\]\])(.+?)(\[\[/kursiv\]\])
zu nutzen. Da dass (für mich) überraschenderweise nicht funktionierte, habe ich den Punkt angezweifelt und siehe da,
(?-m)(\[\[kursiv\]\])([\s\S]+?)(\[\[/kursiv\]\])
oder
(?m)(\[\[kursiv\]\])([\s\S]+?)(\[\[/kursiv\]\])
oder (und logischerweise)
(\[\[kursiv\]\])([\s\S]+?)(\[\[/kursiv\]\])
funktionieren auch (nur, dass ich den letzten Schritt gestern nicht ausprobiert habe).
So kommt man zwar auf Umwegen auch zu einer funktionierenden Lösung
, die jedoch, da gebe ich Dir vollkommen recht, performancemäßig mäßig ist (siehe PS II).
Die Beschreibung auf der
Adobe-Seite zu (?s), (?-s), (?m), (?-m) ist ebenfalls eher mäßig:
* „Mehrzeilig“ ein (?m)
* „Mehrzeilig“ aus (?-m)
* „Eine Zeile“ ein (?s)
* „Eine Zeile“ aus (?-s)
Was immer das im Detail bedeutet.
Besser ist die Erklärung weiter oben im Link:
- „Mehrzeilig“ ein
(?m)
Beispiel: (?m)^\w+
In diesem Beispiel wird mit dem Ausdruck nach einem oder mehreren (+) Wortzeichen (\w) am Anfang einer Zeile (^) gesucht. Der Ausdruck (?m) bewirkt, dass alle Zeilen innerhalb des gefundenen Texts als separate Zeilen behandelt werden.
Der Ausdruck „(?m)^\w“ entspricht dem Anfang eines jeden Absatzes. Der Ausdruck „(?-m)^\w“ entspricht nur dem Anfang des Textabschnitts.
- „Mehrzeilig“ aus
(?-m)
Beispiel: (?-m)^\w+
- „Eine Zeile“ ein
(?s)
Beispiel: (?s)c.a
Hiermit wird nach einem beliebigen Zeichen ( . ) zwischen den Buchstaben c und a gesucht. Der Ausdruck (?s) entspricht einem beliebigen Zeichen, auch wenn es in der nächsten Zeile steht.
(.) entspricht allem außer einem Absatzumbruch. (?s)(.) entspricht allem einschließlich eines Absatzumbruchs.
Gruß
Ralf, der gerne hin und wieder in die GREP-Untiefen absteigt und froh ist, wenn er wieder oben angekommen ist.
PS.: Der escapte Slash war 'nen Kopierfehler
PS II: Da die Sonne sich bei uns in OWL noch nicht hat blicken lassen habe ich einen kleinen, unwissenschaftlichen Geschwindigkeitstest gemacht:
1. Indesign starten
2. Testdatei öffnen
3. Grep durchführen (78120 Ersetzungen)
[[kursiv]]Dieser Text sollte kursiv stehen
Dieser Text sollte kursiv stehen
Dieser Text sollte kursiv stehen
Dieser Text sollte kursiv stehen
[[/kursiv]]
Ein signifikanter Unterschied war nicht zu erkennen:
(?s)(\[\[kursiv\]\])(.+?)(\[\[/kursiv\]\]) hat knapp 44 Sekunden benötigt,
(\[\[kursiv\]\])([\S\s]+?)(\[\[/kursiv\]\]) war mit 41 Sekunden etwas schneller.
(es spielt übrigens keine Rolle, ob mit (?m), (?-m) oder ohne.
Das die zweite Variante einen Tick schneller ist, könnte daran liegen, das die Prüfung der Absatzenden bei der (?s)-Variante aufwändiger ist.
Letztendlich jedoch egal, der Unterschied ist mit weniger als 10% marginal und wer hat schon 78120 Ersetzungen zu machen? Und wer weiß, wie der GREP programmiert ist - sicher nicht einfach, von außen betrachtet die Performance zu bewerten.
PS III: Gut, dass die guten, alten UNIX-Zeiten schon lange vorbei sind. Dieses "Wissen" musste man früher doch häufiger einsetzen.
Gruß
Ralf