Liebe Leser,
ich probiere gerade, eine einigermaßen "sorgenfreie" GREP-Suche zu erstellen, um Zahlen und Einheiten mit einem Achtelgeviert zu spationieren.
Dabei möchte ich diese Abfolgen finden:
100mm
100 mm
aber diese hier nicht (damit ich sie nicht immer und immer wieder finde):
100[achtelgeviert]mm
Vereinfacht sieht das Muster aktuell so aus:
Suchen: (\d+)(?<!~<) ?(?=mm\>)
Ersetzen: $1~<
Also:
– (\d+) such nach einer oder mehr Ziffern (als Suchgruppe)
– (?<!~<) hör auf wenn schon ein Achtelgeviert da ist
– ? ein Space oder keiner
– (?=mm\>) schau ob danach eine Einheit folgt (im Beispiel nur mal die mm drin, sind natürlich mehr als das)
– $1~< ersetze die gefundene Zahl und häng ein Achtelgeviert an
Das funktioniert auch bestens, und ich finde nicht ständig schon "erledigte" Fälle (wie wenn ich nach \s suchen würde).
"Schönheitsfehler" an der Sache ist, dass ich die Zahl mit suche und dann wieder mit sich selbst ersetze.
Schöne fände ich eine dieser Suchstrings:
(?<=\d)(?<!~<) ?(?=mm\>) oder
(?<=\d(?<!~<)) ?(?=mm\>)
Es stellt die Ziffer auch in einen Lookahead, schließt dann (geklammert oder in Serie) ein möglicherweise vorhandenes Achtelgeviert aus und schaue nach ob eine Einheit folgt.
Die Suche funkioniert auch – es findet die Stelle zwischen 100 und mm und markiert diese (also sogar das "nichts" in "100mm"), wenn da ein Space drin ist oder keiner (aber nicht beim Achtelgeviert).
Allerdings klappt das Einfügen nur beim Fall "100 mm", aber nicht bei "100mm" ... d.h. beim Klick auf "Suchen" wird das Nichts zwischen 100mm gefunden, aber beim Klick auf "Ersetzen" wird dann nichts ersetzt.
Gibt's dafür eine Lösung oder kann man einfach nicht "Nichts durch Etwas" in Indesign ersetzen?
Vielen Dank für jede Idee
Bastian