Erhalten Sie den Anfang und das Ende von Text in einem bestimmten Zeichenstil in Indesign GREP

Ich habe ziemlich viel mit InDesign GREP find/change gekämpft und konnte keine Möglichkeit finden, den Anfang und das Ende eines Zeichenstils zu sehen. Dies ist notwendig, wenn Sie beispielsweise nur ganze Teile eines Zeichenstils erfassen möchten und nur dann, wenn sie nichts enthalten.

Zum Beispiel könnten Sie Text wie ...

Lorem ipsum dolor sit 2-4 amet, consectetur 5 adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 2,3 exercitation ullamco 6 laboris nisi ut aliquip ex ea commodo consequat.

... und Sie möchten GREP-Regeln erstellen, die strikt nur am Anfang jedes Ausschnitts oder jeder Spanne des Zeichenstils beginnen, der die Hochstellung anwendet, und strikt nur am Ende des Zeichenstils enden, der die Hochstellung anwendet.

(zum Beispiel, damit Sie ganze Snippets finden können, die keine Satzzeichen wie „-“ oder „,“ enthalten, ohne Teil-Snippets zu finden, die keine Satzzeichen sind, wie die 2 in „2,3“)

Die Verwendung von ^und $(Anfang und Ende von Absatz/Zeile) mit einem in Suchen/Ersetzen angegebenen Zeichenstil führt zu seltsamen Ergebnissen und stürzt dann ab. Die Verwendung von Wortgrenzen \bund dem mysteriösen "Gegenteil einer Wortgrenze" \Bführte ebenfalls zu seltsamen Ergebnissen (einmal mit dem Cursor an die richtige Stelle springen, dann nichts auswählen und keine Orte mehr finden).

Antworten (1)

Ich habe etwas herausgefunden, basierend auf der Tatsache, dass InDesign GREP bei einem ausgewählten Zeichenstil nicht das Vorhandensein von Zeichen registriert, die nicht zu diesem Zeichenstil gehören.

(?<!.).+(?!.)- Dies wählt den gesamten Ausschnitt eines Zeichenstils aus, streng am Anfang beginnend und streng am Ende endend.

Sie können dies verwenden, um eine Negation einzuschließen (zB (?<!.)[^-]+(?!.)findet nur ganze Abschnitte eines Zeichenstils, die kein "-" enthalten, (?<!.)[^Gor blimey]+(?!.)findet nur ganze Abschnitte eines Zeichenstils, die kein "Gor blimey" enthalten).

  • Beginnen mit(?<!.) , um anzugeben, dass die Auswahl am Anfang dieses Abschnitts des ausgewählten Zeichenstils beginnen muss
    • Es ist ein "negativer Lookbehind" auf .die Bedeutung, wählen Sie hier nur aus, wenn das Zeichen vor dieser Auswahl nicht vorhanden ist [any character](dh wenn vor dieser Auswahl nichts vom ausgewählten Zeichenstil vorhanden ist).
  • Beenden mit(?!.) , um anzugeben, dass die Auswahl am Ende dieses Abschnitts des ausgewählten Zeichenstils enden muss
    • Es ist ein "negativer Lookahead" auf .die Bedeutung, wählen Sie hier nur aus, wenn das Zeichen nach dieser Auswahl nicht ist [any character](dh wenn nach dieser Auswahl nichts vom ausgewählten Zeichenstil vorhanden ist).
Ich habe mich ein wenig mit einem Testdokument beschäftigt und eine Weile damit herumgespielt und bin zu dem gleichen Schluss gekommen wie Sie. Dies wäre eine großartige Möglichkeit, Zeichenstile zu überlagern, wenn es auch in GREP-Stilen funktionieren würde, aber leider wird es ab ID CC immer noch nicht funktionieren, da der Ausgangspunkt die Stilauswahl sein muss.