• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Grep-Ersatz beliebiger Buchstabe + Leerzeichen

Enthusiast ,
Feb 03, 2023 Feb 03, 2023

Copy link to clipboard

Copied

Hallo!

Ich brauche eure Hife für meine Suche/Ersetzen Funktion.

Ich suche nach diesem Grep: 

\dV

Es wird dann z.B. 230V oder 150V oder 50V usw. gefunden.

Nun möchte ich das durch 230 V, 150 V usw. ersetzen.

Wie kann ich denn nun in der Ersetzen-Zeile das erreichen? Bisher lass ich mir die Resultate anzeigen und dann mache ich manuell mit der Leertaste ein Leerzeichen nach der Zahl.

Ich habe schon einiges an Formeln gefunden, aber leider klappt es nicht.

 

Hoffe auf Tipps, dankeschön!

TOPICS
How to , Scripting

Views

525

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 2 Correct answers

Community Expert , Feb 03, 2023 Feb 03, 2023
Find what: \d\K(?=V)
Change to: ~S

The find-what expression matches the insertion point between a digit and V: between a lookbehind and a lookahead.

The change-to phrase inserts a non-breaking space at that insertion point (you can change that to any other space that you fancy).

Votes

Translate

Translate
Community Expert , Feb 03, 2023 Feb 03, 2023
quote

 

… Bisher lass ich mir die Resultate anzeigen und dann mache ich manuell mit der Leertaste ein Leerzeichen nach der Zahl …

By @aniri5j9ox8tw2ln

 

Hallo @aniri5j9ox8tw2ln 

wahrscheinlich bist du dir (noch) nicht ganz bewußt, wie mächtig die Suchen und Ersetzen Funktion in InDesign wirklich ist.

 

Du hast in deinem Eingangspost Grep erwähnt.

Damit bist du schon auf dem richtigen Weg. Nutze deshalb unbedingt den Reiter Grep (und nicht den Reiter Text) im Suchen und Ersetzen-Dialogfeld. Nur damit

...

Votes

Translate

Translate
Community Expert ,
Feb 03, 2023 Feb 03, 2023

Copy link to clipboard

Copied

Find what: \d\K(?=V)
Change to: ~S

The find-what expression matches the insertion point between a digit and V: between a lookbehind and a lookahead.

The change-to phrase inserts a non-breaking space at that insertion point (you can change that to any other space that you fancy).

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Feb 05, 2023 Feb 05, 2023

Copy link to clipboard

Copied

LATEST

Thank you very much, Peter!

It works 👍

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 03, 2023 Feb 03, 2023

Copy link to clipboard

Copied

quote

 

… Bisher lass ich mir die Resultate anzeigen und dann mache ich manuell mit der Leertaste ein Leerzeichen nach der Zahl …

By @aniri5j9ox8tw2ln

 

Hallo @aniri5j9ox8tw2ln 

wahrscheinlich bist du dir (noch) nicht ganz bewußt, wie mächtig die Suchen und Ersetzen Funktion in InDesign wirklich ist.

 

Du hast in deinem Eingangspost Grep erwähnt.

Damit bist du schon auf dem richtigen Weg. Nutze deshalb unbedingt den Reiter Grep (und nicht den Reiter Text) im Suchen und Ersetzen-Dialogfeld. Nur damit kannst du nach varierenden Inhalten suchen.

 

Kurz zur Erklärung warum dein Eingangs-Grep \dV nicht funktionieren kann. Du suchst mit diesem Grep nach allem, was dem Muster: (beliebige) Ziffer (+ direkt darauf folgender Grossbuchstabe) V

 

Gefunden wird damit aber nicht, wie du beschreibst z.B. 230V oder 150V oder 50V.

Gefunden und markiert wird immer nur 0V

Drückst du jetzt die Leertaste, dann wird die markierte Stelle (also 0V) durch ein Leerzeichen ersetzt. Doch das möchtest du eigentlich nicht. Du möchtest vielmehr, dass der Zwischenraum zwischen 0 und V markiert wird - und genau an dieser Stelle ein Wortzwischenraum eigefügt wird.

 

Jetzt kann ich dir noch ganz schnell sagen, dass du nicht jede einzelne Fundstelle einzeln „anspringen“ musst nur um dann von Hand die Leerzeichen einzugeben. Denn das macht InDesign ganz automatisch für dich - und zwar wahlweise für die Auswahl, den Textrahmen, bis zum Ende des Textabschittes oder auch komplett im gesamten Dokument. Je nachdem, welche Auswahl du im Dialogfeld triffst.

 

Für das Suchen hat dir @Peter Kahrel schon den Grep geliefert. Er verwendet einen sogenannten positiven Lookbehind (\K) und einen positiven Lookahead (?=).

  • \d\K findet also die Stelle nach einer Ziffer, markiert aber nur die Stelle selbst und nicht die Ziffer
  • (?=V) findet also die Stelle vor einem großen V, markiert aber nur die Stelle selbst und nicht das V

 

Die Kombination von beidem ist \d\K(?=V)

 

Damit wird dann genau die Stelle zwischen einer beliebigen Ziffer und einem V gefunden und markiert. Und Peter zeigt dir auch gleich, wie das automatische Einfügen eines Leerzeichens zu erfolgen hat. Denn genau das bewirkt die Eingabe von ~S im Ersetzen-Feld. Als kleinen Bonus hat er dir allerdings kein normales Leerzeichen angeboten - sondern das geschützte Leerzeichen. Dadurch bleiben Ziffer/Leerzeichen/V auch beim automatischen Zeilenumbruch zusammenhängend und werden nicht auseinandergerissen.

Hast du allerdings einen gelieferten Text, dann besteht eine große Wahrscheinlichkeit, dass manchmal bereits ein Leerzeichen zwischen Ziffer und V vorhanden sein kann.

 

Doch auch dieser Umstand kann in die Grep-Suche integriert werden.

 

\h? sucht nach einem sogenannten horizontalem Leerzeichen, das 0x oder 1x vorhanden ist.

\d\K\h?(?=V) findet also jede Kombination aus Position nach Ziffer/horizontales Leerzeichen (vorhanden oder nicht vorhanden)/Postion vor V und ersetzt es mittels ~S durch ein geschütztes Leerzeichen.

 

Vielleicht hilft dir das ein bisschen weiter. (Und ganz ehrlich: Grep kann noch viel viel viel mehr …)

😉

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Feb 05, 2023 Feb 05, 2023

Copy link to clipboard

Copied

Wow!

Ich bin überwältigt... Vielen Dank für die ausführliche Erklärung, es klappt wunderbar! Du hast Recht, es wurde immer die Zahl 0 und das V markiert... Ich hatte selber versucht die richtige Formel zu finden, bin aber da leider an meiner Grenze gestoßen...

Ja ich verwende viel die Suchen/Ersetzen Funktion und habe auch ein paar andere Greps (einige nützliche habe ich nach intensiven googeln finden können) und weitere Textersetzungen die ich tagtäglich brauche, im Suchen/Ersetzen Fenster gespeichert - die Liste ist wirklich lang geworden, aber diese Funktionen helfen ungemein! Überhaupt wenn man es in alle offenen Dokumenten gleichzeitig anwenden kann 🙂

Danke euch nochmals!!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines