hilfdirselbst.ch
Facebook Twitter gamper-media

**********************************************
        Facelifting HDS: Danke für deine Unterstützung!

**********************************************

thr33dog
Beiträge: 10
17. Okt 2017, 15:15
Beitrag #1 von 13
Bewertung:
(2592 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Möchte ein Skript zusammestellen, welches möglichst viele typographische Textkorrekturen ausgührt. ChainGREP hilft dabei mehrere GREP-Ersetzungen komfortabel nachheinander auszuführen.

Derzeit hänge ich jedoch noch bei einer Abfrage. Das Ziel soll ein Achtelgeviert Abstand zwischen Zahlen und Maßeinheiten sein (egal ob bereits schon ein Leerzeichen im Text vorhanden ist oder nicht).

Code
Suche: 
(\d+)\s?(?=m|cm|mm|km|nm|kg|g|t|h|l|ml|bar|hPa|°C|€|%|\$|µg|µm)
Ersetze durch:
$1~<$2

Die Suche findet jedoch immer nur das erste Vorkommen in einem Satz oder in einem Absatz. Alle nachfolgenden Einheiten werden ignoriert.
Wie lässt sich die Suchabfrage verfeinern (oofenbar fehlt ein Ende), dass auch alle Vorkommnisse im Dokument gefunden werden?

Besten Dank für eine Ergänzung.
(Dieser Beitrag wurde von thr33dog am 17. Okt 2017, 15:16 geändert)
Top
 
X
Ralf Hobirk S
Beiträge: 5754
17. Okt 2017, 15:37
Beitrag #2 von 13
Beitrag ID: #559979
Bewertung:
(2584 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Hallo,

ich habe jetzt keine Zeit zum Testen, aber du hast doch gar keine Fundstelle $2, weil der zweite Ausdruck in Klammern ein Lookahead ist. Wenn ich mich nicht täusche, müsste folgende Ersetzung hinhauen:

Code
$1~< 


---
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: [#559977] Top
 
ToniMontanaa S
Beiträge: 415
17. Okt 2017, 15:47
Beitrag #3 von 13
Beitrag ID: #559980
Bewertung:
(2581 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Hallo,

mir gehts wie Ralf, ich hab leider auch keine Zeit zum testen.

Aber versuch mal das "?" hinter deinem \s weg zu lassen.

Grüße
Stefan
als Antwort auf: [#559979] Top
 
Thomas Richard  M  p
Beiträge: 17688
17. Okt 2017, 18:38
Beitrag #4 von 13
Beitrag ID: #559984
Bewertung:
(2547 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Antwort auf: Aber versuch mal das "?" hinter deinem \s weg zu lassen.

Ich bin da eher bei Ralfs Lösungsansatz, nebst stimmiger Begründung:
Antwort auf: ... du hast doch gar keine Fundstelle $2 ...


Bei deinem Vorschlag gehen 15% und 45mm durch die Lappen.


MfG

Thomas


Und wenn dir geholfen wurde, hilf uns, dies auch weiterhin zu können.
http://www.hilfdirselbst.ch/info/
als Antwort auf: [#559980]
(Dieser Beitrag wurde von Thomas Richard am 17. Okt 2017, 18:40 geändert)
Top
 
Medienoperator
Beiträge: 40
17. Okt 2017, 20:32
Beitrag #5 von 13
Beitrag ID: #559985
Bewertung:
(2532 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Probier mal den hier:
Suchen nach:
Code
(\d+)\s*?(m|cm|mm|km|nm|kg|g|t|h|l|ml|bar|hPa|°C|€|%|\$|µg|µm) 


Ändern in:
Code
$1~<$2 


Grüße, Sascha
als Antwort auf: [#559984] Top
 
thr33dog
Beiträge: 10
18. Okt 2017, 09:13
Beitrag #6 von 13
Beitrag ID: #559987
Bewertung:
(2445 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


besten Dank an Ralf, Stefan und Thomas. Natürlich kann hier keine zweite Fundstelle gefunden werden – hatte die falsche Suchabfrage ins Forum reinkopiert (das positive Lookahead gehört nicht rein)

Möchte den Vorschlag von Medienoprator aufgreifen.:
Code
(\d+)\s*?(m|cm|mm|km|nm|kg|g|t|h|l|ml|bar|hPa|°C|€|%|\$|µg|µm) 

Diese Suchabfrage hat meine eigene angedachte noch verbessert. Es findet aber jeweils nur die erste Einheit in einem Absatz.
Hier ein Beispielssatz:
Zitat Eine 50 cm große und 20 kg schwere Gasflasche mit einem Innendruck von 201 bar wird 2 h lang durch Sonnenstrahlen um 5 °C erhitzt.


Welche Ergänzug der GREP-Abfrage findet alle gewünschten Suchstellen/Einheiten?
als Antwort auf: [#559985] Top
 
ToniMontanaa S
Beiträge: 415
18. Okt 2017, 09:28
Beitrag #7 von 13
Beitrag ID: #559988
Bewertung:
(2438 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Moin thr33dog,

Antwort auf: Möchte den Vorschlag von Medienoprator aufgreifen.:
Code
(\d+)\s*?(m|cm|mm|km|nm|kg|g|t|h|l|ml|bar|hPa|°C|€|%|\$|µg|µm)

Diese Suchabfrage hat meine eigene angedachte noch verbessert. Es findet aber jeweils nur die erste Einheit in einem Absatz.
Hier ein Beispielssatz:
Zitat
Eine 50 cm große und 20 kg schwere Gasflasche mit einem Innendruck von 201 bar wird 2 h lang durch Sonnenstrahlen um 5 °C erhitzt.


Welche Ergänzug der GREP-Abfrage findet alle gewünschten Suchstellen/Einheiten?

Wenn ich das so mit deinem Beispieltext teste, findet und ersetzt es bei mir jede Zahl+Einheit.

Grüße
Stefan
als Antwort auf: [#559987] Top
 
Kai Rübsamen  M  p
Beiträge: 4484
18. Okt 2017, 09:31
Beitrag #8 von 13
Beitrag ID: #559989
Bewertung:
(2436 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Also, der Vorschlag von Medienoperator macht mit Ausnahme des variablen Whitespace-Zeichens nichts anderes, als die korrigierte Variante von Ralf. Ich rate, dass die Variante mit einem Lookahead auch etwas schneller ist, da die Fundstellen nicht zwischengespeichert werden müssen.

Das Weglassen von "?" wie von Stefan vorgeschlagen ist keine Option! Bei \s*? kann das Fragezeichen allerdings entfallen, da der GREP aufgrund des nachfolgenden Ausdrucks nicht gierig ist und das Whitespacezeichen bereits durch "*" optional ist.

Du hast auf jeden Fall zwei Probleme:
1. mm wird nicht gefunden, da der Ausdruck bereits mit "m" zufrieden ist > Reihenfolge umstellen
2. mangels Wortgrenzen wird beispielsweise ein "m" auch in einem längeren Wort nach einer Zahl gefunden.

S: (\d+)\s*(?=(mm|cm|m|km|nm|kg|g|t|h|l|ml|bar|hPa|°C|€|%|\$|µg|µm)\b)
E: $1~<

Falls dieser GREP bei dir nicht funktioniert, liegt es nicht am GREP, sondern an deinem Dokument. Bitte idml zur Verfügung stellen.

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#559987]
(Dieser Beitrag wurde von Kai Rübsamen am 18. Okt 2017, 09:35 geändert)
Top
 
thr33dog
Beiträge: 10
18. Okt 2017, 09:33
Beitrag #9 von 13
Beitrag ID: #559990
Bewertung:
(2435 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Bei mir findets leider nur die erste Stelle: 50 cm
Dann ist die »Suche abgeschlossen«.

Nutze die Suche in InDesign CS6 – scheint an der Version zu liegen (!) in InDesign CC 2017 problemlos möglich.
als Antwort auf: [#559988]
(Dieser Beitrag wurde von thr33dog am 18. Okt 2017, 09:49 geändert)
Top
 
thr33dog
Beiträge: 10
18. Okt 2017, 10:46
Beitrag #10 von 13
Beitrag ID: #559991
Bewertung:
(2389 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


existiert ein Workaround für CS6?
als Antwort auf: [#559990] Top
 
Kai Rübsamen  M  p
Beiträge: 4484
18. Okt 2017, 11:49
Beitrag #11 von 13
Beitrag ID: #559992
Bewertung:
(2358 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


ja: (\d+)\s*(?=(mm|cm|m|km|nm|kg|g|t|h|l|ml|bar|hPa|°C|€|%|\x24|µg|µm)\b)

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#559991] Top
 
thr33dog
Beiträge: 10
18. Okt 2017, 12:01
Beitrag #12 von 13
Beitrag ID: #559993
Bewertung:
(2353 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


Antwort auf: ja: (\d+)\s*(?=(mm|cm|m|km|nm|kg|g|t|h|l|ml|bar|hPa|°C|€|%|\x24|µg|µm)\b)

Besten Dank Kai!!

lag es etwa ernsthaft an dem kleinen Dollarzeichen? …danke!
als Antwort auf: [#559992] Top
 
Kai Rübsamen  M  p
Beiträge: 4484
18. Okt 2017, 12:11
Beitrag #13 von 13
Beitrag ID: #559994
Bewertung:
(2345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

GREP-Suche Verfeinerung: Achtelgeviert bei Maßeinheiten in Texten


ja! Die Funktion des literalen Zeichens u. des Metazeichens sind bis einsch. CS6 unter bestimmten Konstellationen zerschossen und wurden erst in CC gefixt.

Gruß Kai Rübsamen
_______________________
als Antwort auf: [#559993] Top
 
X