[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt findchangebylist

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

findchangebylist

studiolauer
Beiträge gesamt: 33

5. Jul 2016, 14:38
Beitrag # 1 von 3
Bewertung:
(1643 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich habe ein script um einen fehlenden leeraum hinter eine interpunktion zu setzen mit folgender zeile:

grep {findWhat:"([,|;|:|.|!|?])\\p{Z*}*"} {changeTo:"$1 "} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true} Leerzeichen nach Interpunktion

das funktioniert wunderbar - allerdings macht es natürlich auch einen leerraum bei zahlen die ein komma oder punkt haben wie z.b 98,5% oder 12.000.

jetzt habe ich das komma und den punkt aus dem script entfernt und möchte eine neue scriptzeile, die den leeraum bei zahlen nicht macht einsetzen - leider verzweifle ich daran - kann mir jemand helfen - danke im voraus
X

findchangebylist

masterkey
Beiträge gesamt:

26. Aug 2016, 10:45
Beitrag # 2 von 3
Beitrag ID: #552141
Bewertung:
(1376 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Versuch es mal damit im «findWhat»-Bereich:

Code
([,|;|:|.|!|?])(?!\d) 


Es werden nur Zeichen (alle in den eckigen Klammern) gefunden, auf welche keine Ziffer folgt.
(ungetestet innerhalb eines Skriptes, nur im Suchen/Ersetzen-Bedienfeld kurz probiert)


Viel Spass!


als Antwort auf: [#551011]

findchangebylist

Ralf Hobirk
Beiträge gesamt: 5961

26. Aug 2016, 11:11
Beitrag # 3 von 3
Beitrag ID: #552142
Bewertung:
(1364 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

kurzer Hinweis: In Javascript muss "doppelt escaped" werden, also z. B. \\d

Sußerdem solltest du vermeiden, dass ggfs. hinter den Interpunktionszeichen anschließend zwei Leerzeichen stehen und diese deshalb auch wieder auf ein Leerzeichen reduzieren:

Code
// Leerzeichen einfügen: 
app.findGrepPreferences = null;
app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = '([,|;|:|.|!|?])(?!\\d)';
app.changeGrepPreferences.changeTo = ' ';
app.activeDocument.changeGrep();

// mehrere Leerzeichen in Folge auf eines reduzieren:
app.findGrepPreferences = null;
app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = '[~m~>~f~|~S~s~<~/~.~3~4~% ]{2,}';
app.changeGrepPreferences.changeTo = '\\s';
app.activeDocument.changeGrep();



als Antwort auf: [#552141]