[GastForen Programme Print/Bildbearbeitung Adobe InDesign GREP findet 2 Absätze auf einmal?!

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

GREP findet 2 Absätze auf einmal?!

Ralf Hobirk
Beiträge gesamt: 5961

16. Jul 2015, 18:24
Beitrag # 1 von 14
Bewertung:
(4301 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mein GREP

Code
.+?:[^\d:\d].+ 


soll Absätze finden wie z. B.:

Zitat Donnerstag: Insel Losinj–Insel Cres


aber keine Absätze wie z. B.:

Zitat Zwischen 11:00 und 13:00 Uhr Einschiffung im Hafen von Rijeka.


So weit, so gut. Er findet keine Absätze, in denen der Doppelpunkt zwischen zwei Zahlen steht. Aber warum findet er dann dieses:

Zitat Etwa die Hälfte der Schiffe fährt die Route in umgekehrter Reihenfolge:
Rijeka – Insel Cres – Insel …


Und zwar findet er beide Absätze auf einmal (siehe Screenshot, Absatzumbruch nach dem Doppelpunkt).

Der Punkt (.) findet üblicherweise jedes beliebige Zeichen, jedoch keinen Absatzumbruch bzw. Zeilenschaltung, was in diesem Fall jedoch unerwünschterweise gefunden wird.

Im konkreten Fall bringt der GREP

Code
.+?:[^\d:\d] 


zwar die Lösung, weil auf den Absatz ein AF angewandt wird und er daher nicht vom ersten bis zum letzten Zeichen gefunden (ausgewählt) werden muss. Sollte jedoch ein ZF angewandt werden müssen, wäre dies zwingend notwendig.

Kann jemand den Knoten in meinem Hirn lösen

(Dieser Beitrag wurde von Ralf Hobirk am 16. Jul 2015, 18:26 geändert)

Anhang:
2_Absaetze.pdf (57.3 KB)
X

GREP findet 2 Absätze auf einmal?!

pixxxelschubser
Beiträge gesamt: 1708

16. Jul 2015, 20:01
Beitrag # 2 von 14
Beitrag ID: #541305
Bewertung:
(4255 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,
dein Grep „wirkt“ auf mich einfach nur falsch.

beliebige Zeichen ein oder mehrmals - kürzeste Entsprechung, gefolgt von einem Doppelpunkt, der nicht von einer Zahl oder nicht von einem Doppelpunkt oder nicht von einer Zahl (unnütze Doppelung deinerseits) gefolgt wird, denen beliebige Zeichen beliebig oft folgen

Wenn keine Uhrzeiten (ich nehme an: immer ohne Leerzeichen) vorhanden wären, dann würde ein verschachteltes Format im Absatzformat völlig ausreichen. Da dem aber nicht so ist:
Vorausgesetzt du suchst vom Absatzanfang alle Zeichen bis zum ersten Doppelpunkt, außer das Zeichen direkt vor dem Doppelpunkt ist eine Zahl.

Dann könnte man z.B. so vorgehen:
Absatzanfang
^
beliebiges Zeichen
.
ein oder mehrmals (kürzeste Entsprechung)
+?
keine Ziffer
\D
Doppelpunkt
:

also
^.+?\D:

- - - - - - - - - -

oder auch:
Absatzanfang
^
kein Doppelpunkt
[^:]
ein oder mehrmals
+?
keine Ziffer
\D
Doppelpunkt
:

also
^[^:]+\D:

Abhängig von deinen genauen Texten gibt es noch ein paar andere Varianten, aber vielleicht hilft dir das ja schon weiter.
Wink


als Antwort auf: [#541304]

GREP findet 2 Absätze auf einmal?!

Ralf Hobirk
Beiträge gesamt: 5961

16. Jul 2015, 20:52
Beitrag # 3 von 14
Beitrag ID: #541306
Bewertung:
(4229 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi pixxxelschubser,

dein erster GREP ist OK und führt zum gleichen Ergebnis wie mein Zweiter ;-) Was dein zweiter GREP findet, schildere ich besser gar nicht erst. Er geht nämlich auch über Absatzumbrüche hinaus… Tolle Ergebnisse.

Ich ärgere mich, dass ich nicht selbst auf das \D gekommen bin. Vermutlich weil ich negative Zeichenklaseen bisher nie eingesetzt habe ;-)

Trotzdem ist mir nicht klar, wie ein GREP über ein Absatzende hinausschießen kann…

Das steht für mich im Widerspruch zu dem, was Peter Kahrel schreibt:

Zitat Any Character
As its name says, this wildcard matches anything. Its symbol is . (a dot). Enter
a dot in the “Find what” field; pressing Find repeatedly finds each successive
character in the document. The only exception is the return character (or paragraph
mark)



als Antwort auf: [#541305]

GREP findet 2 Absätze auf einmal?!

pixxxelschubser
Beiträge gesamt: 1708

16. Jul 2015, 21:19
Beitrag # 4 von 14
Beitrag ID: #541307
Bewertung:
(4202 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von Ralf Hobirk Hi pixxxelschubser,

dein erster GREP ist OK und führt zum gleichen Ergebnis wie mein Zweiter ;-) Was dein zweiter GREP findet, schildere ich besser gar nicht erst. Er geht nämlich auch über Absatzumbrüche hinaus… Tolle Ergebnisse …


Das ist unfair. Zuerst neugierig machen und dann einen Rückzieher!

Zeig doch bitte einmal diese Ergebnisse (Screenshot und/oder besser noch als Beispiel-IDML).


----------
Und noch eine Frage: Nutzt du Grep S&E oder Grepstile im AF?


als Antwort auf: [#541306]

GREP findet 2 Absätze auf einmal?!

Uwe Laubender
Beiträge gesamt: 5318

16. Jul 2015, 21:28
Beitrag # 5 von 14
Beitrag ID: #541308
Bewertung:
(4196 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Ralf!
Welche InDesign-Version benutzt Du?
DAS könnte einen Unterschied machen.


als Antwort auf: [#541306]

GREP findet 2 Absätze auf einmal?!

Ralf Hobirk
Beiträge gesamt: 5961

16. Jul 2015, 21:49
Beitrag # 6 von 14
Beitrag ID: #541309
Bewertung:
(4182 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi pixxxelschubser,

Screenshot mit Beispiel anliegend, was dein zweiter GREP so findet ;-)

Zitat Und noch eine Frage: Nutzt du Grep S&E oder Grepstile im AF?

Sowohl als auch. Hier ging es konkret um S&E bzw. einen einzelnen Schritt davon. Ich formatierte Texte, die aus einem DMS per FTP auf meinen lokalen Server kommen und u. U. alle paar Augenblicke noch aktualisiert werden, per Script und natürlich auch mit reichlich GREP-Stilen in den verschiedenen AFs.

Die IDML ist etwas zu groß, um sie hier anzuhängen, deshalb hier zum Download: http://riva.to/hdsr1


als Antwort auf: [#541307]
Anhang:
2-grep.pdf (190 KB)

GREP findet 2 Absätze auf einmal?!

Ralf Hobirk
Beiträge gesamt: 5961

16. Jul 2015, 21:51
Beitrag # 7 von 14
Beitrag ID: #541310
Bewertung:
(4170 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Uwe,

CS6 (ID 8.0.1), siehe Signatur ;-)


als Antwort auf: [#541308]

GREP findet 2 Absätze auf einmal?!

Kai Rübsamen
  
Beiträge gesamt: 4684

16. Jul 2015, 22:38
Beitrag # 8 von 14
Beitrag ID: #541311
Bewertung:
(4115 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Ralf,

Antwort auf: Ich ärgere mich, dass ich nicht selbst auf das \D gekommen bin. Vermutlich weil ich negative Zeichenklaseen bisher nie eingesetzt habe ;-)

Was denkst du, was das "[^\d:\d]" ist? ;-)

In \D oder [^\d] stecken auch die Umbruchzeichen.

Hast du das Highlight-GREP-Skript von Roland Dreger?
Teste dann mal:
.+:[^\d:]+
.+:[^\d:\r]+
.+:[^\d:\r]+?


als Antwort auf: [#541310]

GREP findet 2 Absätze auf einmal?!

Ralf Hobirk
Beiträge gesamt: 5961

16. Jul 2015, 23:00
Beitrag # 9 von 14
Beitrag ID: #541313
Bewertung:
(4089 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Kai,

ich weiß, dass ich mit "[^\d:\d]" einen bestimmten String ausgeschlossen habe. Hatte mich nur nicht an \D oder \U oder \L usw. erinnert, weil nie so benutzt. ;-(

".+:[^\d:\r]+" passt perfekt, die anderen beiden nicht. Der erste GREP markiert zu viel (auch den nächsten Absatz), der Dritte zu wenig (nur bis inkl. Doppelpunkt( ;-)

Das Script von Roland kenne ich nicht, aber ich habe an meinem "Development-Dokument" live getestet ;-)


als Antwort auf: [#541311]

GREP findet 2 Absätze auf einmal?!

Ralf Hobirk
Beiträge gesamt: 5961

16. Jul 2015, 23:04
Beitrag # 10 von 14
Beitrag ID: #541315
Bewertung:
(4081 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Noch ein Zusatz, rein zum Verständnis:

Wieso findet der GREP ".+:[^\d:\r]+" auch Zeichen hinter dem Doppelpunkt?


als Antwort auf: [#541313]

GREP findet 2 Absätze auf einmal?!

pixxxelschubser
Beiträge gesamt: 1708

16. Jul 2015, 23:16
Beitrag # 11 von 14
Beitrag ID: #541316
Bewertung:
(4061 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Ralf Hobirk ] Noch ein Zusatz, rein zum Verständnis:

Wieso findet der GREP ".+:[^\d:\r]+" auch Zeichen hinter dem Doppelpunkt?

Die rot markierte Stelle bedeutet:
alles außer Ziffern, Doppelpunkt, Zeilenumbruch (ein oder mehrfach)


als Antwort auf: [#541315]

GREP findet 2 Absätze auf einmal?!

Kai Rübsamen
  
Beiträge gesamt: 4684

17. Jul 2015, 09:59
Beitrag # 12 von 14
Beitrag ID: #541327
Bewertung:
(3869 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Ralf,

meine drei kleinen GREPs waren nicht als Lösung, sondern als Studie gedacht. Mit dem Skript von Roland erhältst du eine Vorschau und siehst sofort, was da passiert.

Das doofe an GREP ist, dass eigentlich alles eine Zeichenklasse ist. Manchmal liest man aber auch Begriffe wie Zeichenauswahl oder Zeichenliste für etwas in eckigen Klammern und das ist eigentlich besser.

[^0-9] oder [^\d] oder \D ist dasselbe, siehe Screen.

Wenn du also mit Variante 2 oder drei suchst, ist das noch gefährlicher, als wenn du mit dem Punkt suchst, weil alles außer Ziffern, eben alles meint.

.+:[^\d:]+ oder .+:[^\d:\r]+
Hier sieht man schön, was mit einer Zeichenliste gemeint ist. Dinge, die du ausschließen möchtest, setzt du einfach in die eckigen Klammern dazu. Da immer nur ein Zeichen in der Liste ausgewerten wird, brauchst du kein \d:\d.

Warum könnte jetzt das Skript von Roland nützlich sein? Weil du jetzt einzelne Zeichen in deinem GREP-Ausdruck ergänzen kannst und sofort die Änderung fürs komplette Dok siehst.

.+:[^\d:\r]+ oder .+:[^\d:\r]+?
Im ersten Fall ist der GREP gierig und findet den kompletten Absatz mit Ausnahme des Returns am Schluss. Im zweiten Fall ist der GREP faul und findet max. 1 Zeichen nach dem Doppelpunkt. In deinem Fall ein Leerzeichen.

Warum passt jetzt aber der erste Treffer? Der GREP rennt zunächst bis Absatzende und stellt dann fest, dass er keinen Treffer hat. Weil er aber doch soooo gerne etwas finden möchte, geht er jetzt ein Zeichen zurück und prüft, ob der Ausdruck dann erfüllt wäre. Und das ist dann bei dir der Fall.


als Antwort auf: [#541316]
Anhang:
Bildschirmfoto 2015-07-17 um 09.45.38.png (130 KB)   Bildschirmfoto 2015-07-17 um 09.46.22.png (130 KB)

GREP findet 2 Absätze auf einmal?!

Ralf Hobirk
Beiträge gesamt: 5961

20. Jul 2015, 02:43
Beitrag # 13 von 14
Beitrag ID: #541383
Bewertung:
(3594 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Kai,

danke für die ausführliche Erklärung. Muss ich mir gelegentlich noch mal detailliert reinziehen, um die Zusammenhänge wirklich zu verstehen ;-) + = gierig und ? = bis zur ersten Fundstelle waren mir schon klar. Und trotzdem ist mir immer noch nicht klar, warum ein GREP den nachfolgenden Absatz mit einbezieht. Heißt es nicht immer, dass ein GREP nur bis zum Absatzende geht? Das Script von Roland werde ich mir auf jeden Fall noch genauer ansehen.

Aber jetzt wird erstmal produziert, dein GREP passt perfekt!

Falls es jemanden interessiert, anliegend mal ein Beispiel, was man mit GREP im Script und GREP-Stilen so automatisieren kann.

R1.idml = das Ergebnis. Alles was ihr hier an Text seht, ist automatisch formatiert.

KR1_de.rtf = Die Textdatei, die aus dem DMS nach jeder Aktualisierung automatisch per FTP auf meinen lokalen Server geladen wird.

Import_Routes_DE.jsx = Das passende Script dazu.


als Antwort auf: [#541327]
Anhang:
R1.idml (217 KB)   KR1_de.rtf (8.14 KB)   Import_Routes_DE.jsx (15.4 KB)

GREP findet 2 Absätze auf einmal?!

Kai Rübsamen
  
Beiträge gesamt: 4684

20. Jul 2015, 05:11
Beitrag # 14 von 14
Beitrag ID: #541384
Bewertung:
(3557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Heißt es nicht immer, dass ein GREP nur bis zum Absatzende geht?

Nein, dass heißt es nicht.

Ein Grepstil wirkt immer nur absatzweise.

Ein normaler GREP-Ausdruck über die Suche wirkt erstmal für die Länge eines Textstrings. Was ein Textstring ist, ist in InDesign im Rahmen der "GREP-Bibliothek" definiert. Hier findet .+ auf den ersten Blick immer einen Absatz. Das ist aber eigentlich nicht richtig, denn der GREP findet entweder bis zum Absatzende oder bis zu einem Harten Zeilenumbruch. Er findet also jedes beliebige Zeichen, außer Umbruchzeichen. Dieses Verhalten kannst du z.B. mit (?s).+ ändern.

Jetzt gibt es aber auch noch andere Metazeichen, z.B. \D oder [^\d], findet alles was keine Zahl ist und damit auch Umbruchzeichen. Bedeutet: Mit \D+ findest du mehr als einen Absatz.

Der Text in den beigefügten Screens besteht aus drei Absätzen. Achte mal oben links auf die Anzahl der gefundenen Stellen.


als Antwort auf: [#541383]
Anhang:
Reichweite_1.png (109 KB)   Reichweite_2.png (104 KB)   Reichweite_3.png (110 KB)
X