hilfdirselbst.ch
Facebook Twitter gamper-media
« « 1 2 » »  
herrwind
Beiträge: 47
26. Nov 2013, 00:39
Beitrag #1 von 27
Bewertung:
(4999 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Hallo Leute,
ich habe ganz viele Texte und ich möchte die Jahreszahlen gerne dynamisch auslesen und auszeichnen.

So habe ich es bislang probiert:

Suche: (\d\d\d\d)
Ersetzen: $1 + Format

Problem: Im Dokument sind auch viele lange Zahlenketten und da werden am Anfang dann auch die Zahlen ausgezeichnet.

Wie sage ich GREP, dass es genau vier Zeichen sein müssen?

Noch eine kleine Frage zu GREP: Muss ich das immer selbst ausführen, wenn ich einen neuen Text einlade oder kann die Auszeichnung auch ganz automatisch angewandt werden, wenn ein neuer Text geladen wird oder auch beim direkten tippen?

Vielen lieben Dank!
Top
 
X
Martin Fischer  M  p
Beiträge: 11838
26. Nov 2013, 07:15
Beitrag #2 von 27
Beitrag ID: #520085
Bewertung:
(4968 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Hallo Herrwind,

willkommen im InDesign-Forum.

Antwort auf: Problem: Im Dokument sind auch viele lange Zahlenketten und da werden am Anfang dann auch die Zahlen ausgezeichnet.


1. Ergänze Deinen Ausdruck um die Positionsbestimmungen Wortanfang \< und Wortende \>.

\<\d\d\d\d\>

oder

\<\d{4}\>

2. Schränke die in Frage kommenden Zahlen so weit wie möglich ein. Etwa auf das 20. und 21. Jahrhundert:

\<(19|20)\d\d\>

3. Oder noch enger auf die Jahre von 1900 bis 2019:

\<19\d\d|20[01]\d\>


Antwort auf: Noch eine kleine Frage zu GREP: Muss ich das immer selbst ausführen, wenn ich einen neuen Text einlade oder kann die Auszeichnung auch ganz automatisch angewandt werden, wenn ein neuer Text geladen wird oder auch beim direkten tippen?


Ein klarer Fall für einen GREP-Stil.


Falls Du Lust auf mehr GREP hast, sei Dir die GREP-Einführung von Gerald Singelmann empfohlen.

Viele Grüße
Martin
als Antwort auf: [#520084]
(Dieser Beitrag wurde von Martin Fischer am 26. Nov 2013, 07:19 geändert)
Top
 
herrwind
Beiträge: 47
3. Dez 2013, 17:58
Beitrag #3 von 27
Beitrag ID: #520471
Bewertung:
(4827 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Vielen Dank!
Der Link ist klasse, ich springe die PDF gerade immer wieder hoch und runter auf der Suche nach den richtigen Parametern.

Ich brauche nun nämlich einen neuen GREP-Code.
Ich möchte alle Prozentzahlen im Text markieren.

Sie liegen so vor:

2% // einstellige Prozentzahl
40% // zweistellige Prozentzahl
… aber auch mit Leerzeichen 2 %, und 40 %.

Soweit ich das jetzt verstanden habe brauche
ich ein (?x) -> Leerzeichen egal und [0-9]{1,2} für alle Zahlen von 0-99%, wobei ich gerne noch die Ausnahme von 100% dazu nehmen würde, wie packe ich die am beste dazu?

Ich weiß nur nicht wie es zur Bedingung machen kann, dass das %-Zeichen direkt nach den Zahlen mit oder ohne Leerzeichen kommen muss. Sonst markiert der mir ja alle 2-stelligen Zahlen im Text, das möchte ich nicht!

Das habe ich bislang: (?)[0-9]{1,2}

Ich danke euch!
als Antwort auf: [#520085] Top
 
Martin Fischer  M  p
Beiträge: 11838
3. Dez 2013, 18:37
Beitrag #4 von 27
Beitrag ID: #520474
Bewertung:
(4809 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Das müsste so gehen:

\<\d{1,2}\s?%|\<100\s?%


Marco bekommt's aber bestimmt noch kürzer hin. ;-)


Angenehmen Feierabend
Martin
als Antwort auf: [#520471] Top
 
Kai Rübsamen  M  p
Beiträge: 4520
3. Dez 2013, 20:28
Beitrag #5 von 27
Beitrag ID: #520479
Bewertung:
(4765 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Antwort auf: Marco bekommt's aber bestimmt noch kürzer hin. ;-)

Ich finde, es muss nicht immer kürzer sein, hauptsache es funktioniert.

Aber bitte, 4 Zeichen kürzer ;-)

\b(\d{1,2}|100)\s?%
Gruß Kai Rübsamen
_______________________
als Antwort auf: [#520474] Top
 
Gerald Singelmann  M  p
Beiträge: 6178
3. Dez 2013, 23:12
Beitrag #6 von 27
Beitrag ID: #520492
Bewertung:
(4731 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Zitat (?x) -> Leerzeichen


Das ist ein Missverständnis. Das bedeutet, dass Leerzeichen im Suchstring egal sind, nicht im durchsuchten Text.

Wenn der zu durchsuchende Text also ist:

"so long and thanks for all the fish, what? what? f i s h !! yes, fish"

findet sowohl "fish" als auch "(?x) f i s h" genau 2 Treffer, nämlich nicht den mit Leerzeichen gesperrten fish.

Der Sinn ist, dass man Martins

\<\d{1,2}\s?%|\<100\s?%

auch schreiben kann:
(?x) \<\d{1,2} \s? % | \< 100 \s? %

So wirds übersichtlicher
--------------------------

InDesign-Wissen und Automatisierung nicht nur rund um die Suite.

http://www.cuppascript.com
als Antwort auf: [#520471] Top
 
herrwind
Beiträge: 47
3. Dez 2013, 23:33
Beitrag #7 von 27
Beitrag ID: #520497
Bewertung:
(4723 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Antwort auf [ Martin Fischer ] 3. Oder noch enger auf die Jahre von 1900 bis 2019:
\<19\d\d|20[01]\d\>

Hallo Martin,
eben habe ich festgestellt, dass damit auch eine "2000" in einer E-Mail-Adresse abgefangen wurde. Ich verstehe es nicht?

\<19\d\d|20[01]\d\>
Wortanfang

Was stimmt denn nicht?
als Antwort auf: [#520085]
(Dieser Beitrag wurde von herrwind am 3. Dez 2013, 23:34 geändert)
Top
 
Ralf Hobirk p
Beiträge: 5772
3. Dez 2013, 23:55
Beitrag #8 von 27
Beitrag ID: #520499
Bewertung:
(4712 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Ich verstehe es auch nicht. Es funktioniert auch nicht mit Word Boundaries "\b".

Da ich davon ausgehe, dass vor und hinter der Jahreszahl jeweils ein Leerzeichen steht, empfehle ich folgenden GREP:

Code
(?<=\s)\<19\d\d|20[01]\d\>(?=\s) 

oder
Code
(?<=\s)19\d\d|20[01]\d(?=\s) 


Getestet mit der fiktiven Mailadresse "bb2000@mail.com".

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)
als Antwort auf: [#520497] Top
 
herrwind
Beiträge: 47
4. Dez 2013, 00:00
Beitrag #9 von 27
Beitrag ID: #520500
Bewertung:
(4703 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Antwort auf [ Ralf Hobirk ] Ich verstehe es auch nicht. Es funktioniert auch nicht mit Word Boundaries "\b".

Da ich davon ausgehe, dass vor und hinter der Jahreszahl jeweils ein Leerzeichen steht, empfehle ich folgenden GREP:

Code
(?<=\s)\<19\d\d|20[01]\d\>(?=\s) 

oder
Code
(?<=\s)19\d\d|20[01]\d(?=\s) 


Getestet mit der fiktiven Mailadresse "bb2000@mail.com".

Krass, wie schnell das komplex wird, wenn man die Bedingungen noch gar nicht einschätzen kann.
Leider stehen die Jahreszahlen manchmal vor einem Spiegelstrich, aber auch vor einem Komma oder einem Punkt. :(
als Antwort auf: [#520499] Top
 
Ralf Hobirk p
Beiträge: 5772
4. Dez 2013, 00:16
Beitrag #10 von 27
Beitrag ID: #520501
Bewertung:
(4681 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Da gibt's nur eines: Erst mal eine Liste aller vorkommenden möglichen Kombinationen erstellen. Und dann den richtigen GREP erstellen, der alles abdeckt.

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)
als Antwort auf: [#520500] Top
 
Martin Fischer  M  p
Beiträge: 11838
4. Dez 2013, 05:43
Beitrag #11 von 27
Beitrag ID: #520503
Bewertung:
(4624 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Hallo Ralf und Herrwind,

vermutlich wirkt das @-Zeichen wie ein Satzzeichen und markiert eine Wortgrenze.
Man könnte das mit einem negativen Lookahead hinter dem \> ausschließen

Antwort auf: Erst mal eine Liste aller vorkommenden möglichen Kombinationen erstellen. Und dann den richtigen GREP erstellen, der alles abdeckt.


Für solche Zwecke kann man sich einen temporären GREP-Stil im Basisabsatzformat einrichten.
Im Zeichenformat eine markante Farbe oder Unterlegung. Dann sieht man's gleich in echt.


----
edit: Erst jetzt werde ich so richtig auf die 'bb' vor der Zahl in 'bb2000' aufmerksam.
Das ist tatsächlich etwas seltsam, daß die vordere Wortgrenze hier nicht wirkt. Muß ich später mal genauer testen.

Viele Grüße
Martin
als Antwort auf: [#520501]
(Dieser Beitrag wurde von Martin Fischer am 4. Dez 2013, 05:49 geändert)
Top
 
Ralf Hobirk p
Beiträge: 5772
4. Dez 2013, 05:51
Beitrag #12 von 27
Beitrag ID: #520504
Bewertung:
(4617 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Hallo Martin, du Frühaufsteher ;-)

das @ ist nicht das Problem. Mit den Wortgrenzen allein wird "bb2000" gefunden…

Deine Vorgehensweise mit dem temporären GREP-Stil ist auch meine. Ich fange "klein" an und lade dann alle verschiedene Texte des Jobs ins Dokument, um ggfs. weitere GREP-Stile anzulegen oder bestehende zu erweitern. Damit komme ich dann langsam aber sicher zu einem Master-Style bzw. Master-Dokument. Das Gleiche gilt für S&E in Scripts.

So und jetzt endlich gute Nacht ;-)

So, jetzt editiere ich auch. Du hast es erkannt… ;-)

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)
als Antwort auf: [#520503]
(Dieser Beitrag wurde von Ralf Hobirk am 4. Dez 2013, 05:55 geändert)
Top
 
Martin Fischer  M  p
Beiträge: 11838
4. Dez 2013, 05:55
Beitrag #13 von 27
Beitrag ID: #520505
Bewertung:
(4617 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Versuch's mal statt mit

\<19\d\d|20[01]\d\>

mit

\<19\d\d\>|\<20[01]\d\>

oder

\<(19\d\d|20[01]\d)\>

Viele Grüße
Martin
als Antwort auf: [#520497] Top
 
Uwe Laubender S
Beiträge: 4106
4. Dez 2013, 07:59
Beitrag #14 von 27
Beitrag ID: #520509
Bewertung:
(4566 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Guten Morgen, zusammen!

Zur Kenntlichmachung gefundener GREPs könntet ihr ja mal Peter Kahrels GREP Editor Panel benutzen.

Einmal den "Find"-Button im Panel gedrückt, wird sofort das Ergebnis angezeigt. Bei Änderungen im GREP-Ausdruck reagiert die Anzeige spontan. Das heißt: "Find" muss nicht nochmal gedrückt werden… WOW! Da ist der Meister des ScriptUI und Eventhandling am Werk!

Peter Kahrel
A GREP editor

http://www.kahrel.plus.com/...ign/grep_editor.html

(Vor ein paar Tagen erst aufgefrischt)

Coole Geschichte. Thank you very much, Peter!!
*****
Mit herzlichem Gruß,
Uwe Laubender
als Antwort auf: [#520505] Top
 
Martin Fischer  M  p
Beiträge: 11838
4. Dez 2013, 08:17
Beitrag #15 von 27
Beitrag ID: #520512
Bewertung:
(4553 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

[CS5] GREP Jahreszahlen auslesen


Cool!

Danke für die Erinnerung, Uwe.
Ab jetzt gibt's für den GREP-Editor endlich mal ne Taste – Strg+G. ;-)

Viele Grüße
Martin
als Antwort auf: [#520509] Top
 
« « 1 2 » »  
X