[GastForen Programme Print/Bildbearbeitung Adobe InDesign GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

JeT
Beiträge gesamt: 40

20. Okt 2017, 19:27
Beitrag # 1 von 13
Bewertung:
(9367 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich verzweifel gerade, grundsätzlich möchte ich per Absatzformat und Grep einen Abstand bei 1000ern einfügen, also:

z. B. 1 000 oder 20 000...

Aber NUR wenn davor bestimmte Abkürzungen NICHT stehen, wie z. B. "DIN " oder "DIN EN "

Mein Versuch:
Code
((?<!DIN\s)|(?<!DIN\sEN\s))\d(?=\d{3}\b) 


Das funktioniert leider nicht, es wird alles bis 999 999 getrennt, egal ob davor DIN, DIN EN oder nichts steht.


Streiche ich eine Abk., also

Code
(?<!DIN\s)\d(?=\d{3}\b) 


dann wäre das Ergebnis mit "DIN 1000" richtig, aber "DIN 20 000" nicht mehr. Ganz zu schweigen, dass ich mehrere Abkürzungen habe.


Über jede Hilfe dankbar.


Dankeschöön
Jens

(Dieser Beitrag wurde von JeT am 20. Okt 2017, 19:27 geändert)
X

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

mkuenster
Beiträge gesamt: 717

24. Okt 2017, 10:16
Beitrag # 2 von 13
Beitrag ID: #560140
Bewertung:
(9178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn ich das richtig sehe, suchst Du nach der ersten Ziffer einer vierstelligen Zahl, wenn davor nicht DIN bzw. DIN EN steht.

Wenn die Zahl aber fünfstellig ist, dann steht vor der gefundenen Ziffer ja noch eine weitere Ziffer und damit muss mehr als DIN bzw. DIN EN ausgeschlossen werden.

Ich hoffe, es ist verständlich, was ich meine. Bin leider kein Experte.

Gruß
Michael


als Antwort auf: [#560068]

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

Thomas Richard
Beiträge gesamt: 19327

24. Okt 2017, 14:58
Beitrag # 3 von 13
Beitrag ID: #560154
Bewertung:
(9129 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Wenn ich das richtig sehe, suchst Du nach der ersten Ziffer einer vierstelligen Zahl, wenn davor nicht DIN bzw. DIN EN steht.

Nicht ganz. Gefunden wird eine Ziffer, wenn

• direkt dahinter drei Ziffern und eine Wortgrenze folgen
und
• kein DIN oder DIN EN davor steht.

Das Problem ist aus meiner Sicht die Verknüpfung von negativem Lookbehind und dem oder-Pipe in einer Gesamtklammer. Probiers mal ohne Pipe (also sinngemäss wenn nicht das eine _und_ nicht das andere vorkommt)

(?<!DIN EN )(?<!DIN )\d.(?=\d{3}\b)

Hier wie letztens von Kai schon mal erwähnt: Wichtig ist die Reihenfolge. Erst das umfangreichere ‘DIN EN’ dann erst nur 'DIN', sonst kommt das längere nie zum Zug.

Ansonsten habe ich noch hinter der zu findenden Ziffer einen Punkt für 'ein oder mehrere' eingefügt, damit auch fünfstellige Normen gefunden werden, allerdings versagt das ganze ab einer Million.


als Antwort auf: [#560140]

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

Thomas Richard
Beiträge gesamt: 19327

24. Okt 2017, 15:24
Beitrag # 4 von 13
Beitrag ID: #560155
Bewertung:
(9117 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Uups die Weißräume hat die Zwischenablage gefressen ;-)

Code
(?<!DIN\sEN\s)(?<!DIN\s)\d.(?=\d{3}\b) 


und an Michael: Mein 'nicht ganz' im ersten Satz bezog sich nur auf dein 'vierstellige' Zahlen.
Da vor der 4. Stelle von hinten so ziemlich alles ausser DIN und DIN EN stehen darf, werden grundsätzlich auch mehr als 4-stellige Zahlen gefunden. Problem war ohne den Punkt hinter der zu findenden Zahl, dass fünfstellige Normen durchgeschlüpft sind.


als Antwort auf: [#560154]
(Dieser Beitrag wurde von Thomas Richard am 24. Okt 2017, 15:36 geändert)

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

JeT
Beiträge gesamt: 40

26. Okt 2017, 07:13
Beitrag # 5 von 13
Beitrag ID: #560197
Bewertung:
(8896 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Thomas,

musste deine Lösung erstmal auseinander nehmen, da steht noch ein Leerzeichen am Ende (oder kommt beim Kopieren rein, wenn man wie ich nicht aufpasst :))

Leider klappts noch nicht so ganz, Screenshot:

https://cloud.jenstrost.de/...hp/s/m4wTD9jQRTTwjT8

Wenn man den Punkt rausnimmt, klappt das mit dem DIN aber auch nicht mehr so ganz richtig...


als Antwort auf: [#560155]
(Dieser Beitrag wurde von JeT am 26. Okt 2017, 07:13 geändert)

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

Thomas Richard
Beiträge gesamt: 19327

26. Okt 2017, 12:43
Beitrag # 6 von 13
Beitrag ID: #560213
Bewertung:
(8834 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Hmusste deine Lösung erstmal auseinander nehmen, da steht noch ein Leerzeichen am Ende (oder kommt beim Kopieren rein, wenn man wie ich nicht aufpasst :))

Ja, das zaubert leider die hiesige Forensoftware hinein.

Antwort auf: Leider klappts noch nicht so ganz, Screenshot:

https://cloud.jenstrost.de/...hp/s/m4wTD9jQRTTwjT8

Ich weiss zu mindestens auf Anhieb warum es nicht funktioniert Wink
Ich hab es nur per Suchen/Ersetzen getestet und dabei eben Achtelgevierte hineingesetzt, damit sind die ersten Treffer dann für weitere Suchläufe aussen vor, da durch das Achtelgeviert das Suchmuster nicht mehr zutrifft.

Im Fall des Grepstils in dem nur optisch ein Weißraum hinzugefügt wird, wird eben bei mehr als vierstelligen Ziffern ein Zahlenpärchen (1. und 2. Stelle gefunden), und beide bekommen einen Weißraum hinten angestellt.
Wie hast du denn die Auszeichung des Weißraums in deinem Stil angelegt?

Warum die alleinstehende 3000 nicht anschlägt, ist mir noch schleierhaft ...

Und das der eigentlich in den 9999999 hineingehörende 2. Weißraum nicht funktioniert, hatte ich ja bereits geschrieben. Der funktionierte bei dir aber auch nie, da du immer nur nach 3 Ziffern vor dem Wortende gesucht hast. Ich hatte einfach mal vermutet, solch große Zahlen wären nicht relevant.

Antwort auf: Wenn man den Punkt rausnimmt, klappt das mit dem DIN aber auch nicht mehr so ganz richtig...

Ohne den Punkt kann es nicht klappen, hatte ich ja oben bereits geschrieben, denn dann würde sowohl DIN 12345 als auch DIN EN 12345 in die Treffer aufgenommen.

Lösbar wäre es mit vier Ausschlusskriterien:

Code
(?<!DIN\s)(?<!EN\s)(?<!DIN\s\d)(?<!EN\s\d)\d(?=\d{3}\b) 


Nachtrag: Aber vielleicht ist das mit der nicht gefundenen 3000 ja auch gar nicht so wild, denn wenn du Normen in voller Schreibweise hast die bereits aktualisiert wurden, steht ja immer ne Jahreszahl hinten dran:
Zitat ISO 12647-7:2016



als Antwort auf: [#560197]
(Dieser Beitrag wurde von Thomas Richard am 26. Okt 2017, 12:56 geändert)

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

Kai Rübsamen
  
Beiträge gesamt: 4684

26. Okt 2017, 13:01
Beitrag # 7 von 13
Beitrag ID: #560216
Bewertung:
(8827 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alle!

Thomas GREP scheint bei mir wieder andere Sachen zu finden, s. screen.

Ich hab jetzt drei Versuche unternommen u. es nicht hinbekommen. D.h. entweder denke ich falsch oder es geht nicht …

Was bisher (hoffentlich) klar ist:

((?<!DIN\s)|(?<!DIN\sEN\s)) DAS oder DAS darf nicht vorkommen

(?<!DIN EN\s)(?<!DIN\s) DAS und DAS darf nicht vorkommen

Das passt bei Thomas, ebenso die Reihenfolge.

Jetzt aber das eigentliche Problem:
\d(?=\d{3}\b) oder \d.(?=\d{3}\b) gehen nicht.

Dreiergruppen muss ich von hinten finden. Das macht man so:
\d(?=(\d{3})+\b)

Was wir jetzt brauchen ist Folgendes:
Es muss eine komplette Zahl gefunden werden, vor der nicht DIN oder DIN EN stehen darf und dann muss diese Zahl von hinten gegliedert werden.

(?<!DIN EN )(?<!DIN )\d. prüft aber nicht die ganze Zahl, sondern nur die erste Ziffer. Jens Screenshot ist daher m.E. falsch.

Und was ist jetzt das Problem?
Das Problem ist, dass wir links einen Anker setzen, rechts aber auch.

Ich hatte dann das hier versucht:
(?<!DIN EN\s)(?<!DIN\s)(?=\b)\d+\d*?\K\d(?=(\d{3})+\b)

Das schließt alle Zahlen in DIN usw. aus. Hier will er aber die Dreiergruppen nicht mehr :(

@Thomas: Während ich das hier geschrieben habe, hast du eine neue Lösung vorgestellt. Die funktioniert aber bei mir auch nicht, s. screen 2?!

Edit: Ich bin übrigens für zwei Durchläufe per S&E.


als Antwort auf: [#560197]
(Dieser Beitrag wurde von Kai Rübsamen am 26. Okt 2017, 13:03 geändert)

Anhang:
GREP.png (80.1 KB)   GREP_neu.png (81.4 KB)

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

Thomas Richard
Beiträge gesamt: 19327

26. Okt 2017, 13:27
Beitrag # 8 von 13
Beitrag ID: #560217
Bewertung:
(8819 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

nur kurz zu deinem Einwand: Es wäre den normungswütigen Deutschen als angestrebtes Ziel zwar durchaus zuzutrauen, aber da die DIN Nummern in der Regel einfach durchnummeriert werden, sind wir noch ne Weile vor 6 und noch mehr stelligen Normen gefeit ;-)

Ich sehe eher das Problem, dass wenn Normen auftauchen auch Jahreszahlen auftauchen, und die will eigentlich auch keiner mit Tausendertrennung sehen.


als Antwort auf: [#560216]
(Dieser Beitrag wurde von Thomas Richard am 26. Okt 2017, 13:30 geändert)

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

pixxxelschubser
Beiträge gesamt: 1708

26. Okt 2017, 13:45
Beitrag # 9 von 13
Beitrag ID: #560219
Bewertung:
(8811 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo @JeT,
du hast dir ein sehr komplexes Thema „herausgesucht“. Und weil das Thema so komplex ist fehlen einfach noch zu viele Angaben von dir:
InDesign-Version?
kommen Jahreszahlen vor?
kommen Zahlen im Bereich über 999999 vor?

IMHO würde ich auch eher (wie Kai) zwei Suchen & Ersetzen Durchgänge wählen. Wenn es aber unbedingt mit Grepstilen gelöst werden soll, dann könnte ich mir einen etwas kruden Workaround wie folgt vorstellen:
- formatiere alle Zahlen mit Tausendertrennung (Laufweite als Spatium)
- überschreibe dieses Format 1 bei „sicheren“ Jahreszahlen mit Laufweite 0
- und überschreibe das Format 1 wenn DIN oder EN voransteht mit Laufweite 0

Das Problem ist hier nur die Unterscheidung von echten Jahreszahlen und anderen vierstelligen Zahlen.
siehe Screenshot


als Antwort auf: [#560197]
Anhang:
Zahlen_formatieren_wenn-nicht_nach_DIN_EN.png (110 KB)

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

JeT
Beiträge gesamt: 40

26. Okt 2017, 14:24
Beitrag # 10 von 13
Beitrag ID: #560221
Bewertung:
(8791 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo an alle,

dass es nicht so einfach zu lösen ist, habe ich schon befürchtet. Ich hatte gehofft einen einfachen Denkfehler zu haben, wenn es so nicht zu lösen ist, ist S&E durchaus die bessere Lösung.

Zitat Im Fall des Grepstils in dem nur optisch ein Weißraum hinzugefügt wird, wird eben bei mehr als vierstelligen Ziffern ein Zahlenpärchen (1. und 2. Stelle gefunden), und beide bekommen einen Weißraum hinten angestellt.
Wie hast du denn die Auszeichung des Weißraums in deinem Stil angelegt?


Über einen positiven Wert in der Laufweite

Zitat Und das der eigentlich in den 9999999 hineingehörende 2. Weißraum nicht funktioniert, hatte ich ja bereits geschrieben. Der funktionierte bei dir aber auch nie, da du immer nur nach 3 Ziffern vor dem Wortende gesucht hast. Ich hatte einfach mal vermutet, solch große Zahlen wären nicht relevant.

Sind sie auch nicht, ich habe es der Vollständigkeit halber mal reingenommen, einfach um zu sehen, obs vielleicht (zufällig ^^) funktioniert.

Zitat Ich sehe eher das Problem, dass wenn Normen auftauchen auch Jahreszahlen auftauchen, und die will eigentlich auch keiner mit Tausendertrennung sehen.

In meinem Fall habe ich keine Jahreszahlen,... warum eigentlich nicht...hm ;)

Zitat InDesign-Version?
kommen Jahreszahlen vor?
kommen Zahlen im Bereich über 999999 vor?

– CS6, aber spielt das eine Rolle? Hat sich da an grep in der CC etwas geändert?
– Nein
– Nein


als Antwort auf: [#560219]

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

pixxxelschubser
Beiträge gesamt: 1708

26. Okt 2017, 14:38
Beitrag # 11 von 13
Beitrag ID: #560223
Bewertung:
(8778 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat … In meinem Fall habe ich keine Jahreszahlen …

Dann ist’s ja gut.

Zitat … CS6, aber spielt das eine Rolle? …

Natürlich spielt die Version eine Rolle. Ein Teil der von mir gezeigten Grepstile würden in Versionen unter CS6 nicht funktionieren.

Hast du dir meinen Screenshot einmal genauer angesehen?


als Antwort auf: [#560221]

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

JeT
Beiträge gesamt: 40

26. Okt 2017, 18:11
Beitrag # 12 von 13
Beitrag ID: #560231
Bewertung:
(8728 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi pixxxelschubser

Zitat Natürlich spielt die Version eine Rolle. Ein Teil der von mir gezeigten Grepstile würden in Versionen unter CS6 nicht funktionieren.

Okay ich beschäftige mich erst seit 1-2 Jahren etwas intensiver mit Grep, deswegen ist mir das so nicht bewusst gewesen.

Dein Screenshot sieht top aus! Kleiner Haken, den du aber ja schon angesprochen hast, ist eben die Korrektur der Jahreszahl. Spielt für mich aber keine Rolle.

Das \K ist mir schon mal hier untergekommen, das scheint ja wirklich ein Wunderheilmittel zu sein :) Gibt es empfehlenswerten Indesign-bezogenen Lesestoff, wo so fortgeschrittenere Ausdrücke/Parameter erklärt werden?


Vielen, vielen Dank für eure Hilfe. Die Aufteilung von pixxxelschubser ist vielleicht nicht so elegant, aber sie funktioniert für meine Zwecke (wenn man eben keine Rücksicht auf Jahreszahlen nehmen muss)


als Antwort auf: [#560223]

GREP-Stil / Tausender-Trennung nur unter bestimmten Umständen

Ralf Hobirk
Beiträge gesamt: 5961

26. Okt 2017, 19:11
Beitrag # 13 von 13
Beitrag ID: #560234
Bewertung:
(8705 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Jens,

das hier ist für mich schon seit Jahren die InDesign-GREP-Bibel:

http://shop.oreilly.com/...80596156015_external

Ansonsten hat der Autor Peter Kahrel auch so Einiges auf seiner Website:

http://www.kahrel.plus.com/...gn/grep_matters.html


als Antwort auf: [#560231]
X