grep et indesign - fr32c.free.frfr32c.free.fr/idug/grep2010-laurenttournier-idug-paris.pdf · idug...
TRANSCRIPT
GREP et InDesignIDUG Paris(30/09/2010)
Laurent Tournier (http://www.indigrep.com http://twitter.com/indigrep)
http://www.indigrep.comhttp://twitter.com/indigrep
IDUG Paris(30/09/2010)Prsentation
GREP AcronymepourGeneralRegularExpressionPrint
Regular Expression (regex) Uneregexestunechanedecaractresquidcritunesriedechanesdecaractreslaidedecaractreslittrauxetdesignesspciauxlesmtacaractres1245 = \d\d\d\d ou \d{4}
Ellereprsenteleschmaoulastructuredunechanedecaractres(unmot,plusieursmots,unchiffre,unnombre,unephrase,unparagraphe,etc.)Adobe = \u\l+ ou A\l{4}
Dans la mesure o lon dcrit un modle, une mme regex peut retourner des chanes de caractres identiques
IDUG Paris(30/09/2010)Prsentation
Rechercher, Remplacer et Formater Automatisation
automatisationparlesrequtesRechercher/Remplacer
automatisationdelamiseenformegrceauxstylesGREP
Les styles GREP formateletextelavole,defaondynamique
nepermetpasleRechercher/Remplacer
nefonctionnequesilescaractresnesontpasaupralableaffectsdunstyledecaractre
lordredesregexestprimordial.Ladernireprvautsurtouteslesautres
IDUG Paris(30/09/2010)Prsentation
Limites de GREP ladiffrencedesstylesimbriqus,onnepeutpasformateruneligne
impossibledechangerlacasse(policeOT,onchangeleglyphe,paslecaractre),moinsdutiliserunscript
onnepeutpasslectionnerunmotifparrapportunstyledeparagrapheoudecaractre,moinsdutiliserunscript
trslimitaveclesvariables
IDUG Paris(30/09/2010)Prsentation
Diffrences entre les modes Texte et GREP GREPestpardfautsensiblelacasse
La touche de modification (?i) dsactive la sensibilit la casse
GREPignoreloptionmotentier
Lesmtacaractresutilisscommecaractresgnriquesdanslesregexdoiventtrechappspourretrouverleursenslittral(saufdansunjeudecaractres)^ . $ * + ? | \ [ ( ) { }
\Q et \E placs de part et dautre dune regex dsactivent cette option
Caractres gnriques Caractrequelconque. Chiffrequelconque\d Lettrequelconque[\l\u]
Espacequelconque\sCaractredemotquelconque\wLettrecapitalequelconque\u
Lettreminusculequelconque\l Lescaractrescombinatoires\S,\U,\L,\D,\W
Caractrequelconque:toutsauflessauts
Lettrequelconque:basdecasseetcapitale
Caractredemot:caractrealphanumrique+underscore
Lettrecapitalequelconque:quelesvraiescapitales
Caractrecombinatoire:toutsauflecaractredontilestlopposex : \D tout sauf un chiffre ; \L tout sauf les lettres capitales
Posix (Portable Operating System Interface x) [[:alnum:]] [[:alpha:]] [[:ascii:]]
[[:blank:]][[:control:]][[:digit:]]
[[:graph:]][[:lower:]][[:print:]]
[[:punct:]][[:space:]][[:unicode:]]
[[:upper:]][[:word:]][[:xdigit:]]
[[=a=]]
niminumtedigentiaedoluptaturraquitesdelestdolecesto(tabl.12)ditatecatiseumquisre,sinctusdaeEgrtesommolumgretsfugiasporist,queEgrtsnobisRechercher : [[=e=]]gr[[=e=]]t[[=e=]]sRemplacer par : Egrets
[[:alnum:]]:caractrealphanumrique[[:alpha:]]:lettrequelconque[[:ascii:]]:128caractresducodeASCII[[:blank:]]:espaceettabulation[[:control:]]:marquede,tabulationet~F[[:digit:]]:chiffrequelconque[[:graph:]]:toutcaractresaufinvisibles[[:lower:]]:lettreminusculequelconque[[:print:]]:caractrealphanumrique,de
ponctuationetdespacement[[:punct:]]:caractredeponctuation[[:space:]]:13espaces+7sauts[[:unicode:]]:toutcaractresup.255[[:upper:]]:lettrecapitale[[:word:]]:caractredemotquelconque[[:xdigit:]]:caractrehexadcimal[[=a=]]:Posixquivalencedecaractre
Unicode (Valeurs & catgories gnrales) \x{nnnn} \p{L*}(Lettre) \p{M*}(Marque)
\p{N*}(Numral)\p{Z*}(Sparateur)\p{C*}(Autre)
\p{P*}(Ponctuation)\p{S*}(Symbole)
Nmiliquameosvolorsollabrundaerisquaequiesint,sus,necerisapero_eossimus.A. Beaturreconsendipentut$1287pores-vendeliBusciacumvoluptaspeet
rectemciaenem@quidunttas{exceprae}oscoraut123,89%pdipsamquiavoluptatemuteet,sitdebisasidolumdolesciasitiorecus89,67ent+asinctetparchilliquenullaceraes? antiomaximen,deliquis$9845=4410re;voloreiuntisexperspisnesquasquassedevendisquiberion12765nonemperumquovoluptistorepelesciisaccatiasesequibus.Ciinumvolorenimaximpossitatio(fig.67)vendemeruptaturevoluptatemfugiaecvolestiberum78duagnat.Sequidolupta(taspicaelaborun(tiundaessi)quatoditius).ditatecatis
Rechercher (signe du dollar en valeur Unicode): \x{0024}Rechercher (une ou +sieurs lettres non latines) : \p{Lo}+Rechercher (nimporte quel symbole montaire) : \p{Sc}
Rechercher (caractre de ponctuation binaire ouvrant): \p{Ps}Rechercher (nimporte quel symbole mathmatique): \p{Sm}
Dlimiteurs (de mot) Dbut\demot Limitedemot\b Non-limitedemot\B
Dbutdeparagraphe^Findeparagraphe$
Dbutdarticle\A Findarticle\Zou\z
Otatiumiumrequassuset,minutierinctomosantur?Quidoluptiametearumnonsegaminauteaquiscipsuntusconsequam,quistrumdelicimi,mincesitatmi,illutmoluptatqueperoruntautenisvendeliquia34mindipsusamsitatiamusutali-bus,veliquosameumfaccuptatus.Ibus,jasmin.Tepraturressusministreeveliderroconnectemetvolesmolectoremodipsumfugiaipsantiorumeaquiditisdoluterciur24minsantvolorest,custgamineriequamconsevollestotemetfaccaesdolectoriaconsedmagnatiostinumautetetautquibusadoloreprae(minceur)preiciumetconsesitatquiaeped[min]magnitaturantposvoluptatemsimolupti.
Rechercher (1 mot entier) : \bmin\b ou \Rechercher (1 mot commenant par min) : \bminRechercher (1 mot finissant par min) : min\bRechercher (1 mot ne commenant pas par min) : \Bmin
Dlimiteurs (paragraphe et article) Dbut\demot Limitedemot\b Non-limitedemot\B
Dbutdeparagraphe^Findeparagraphe$
Dbutdarticle\A Findarticle\Zou\z
Rechercher (1er mot dun ): ^\w+Rechercher (dernier mot dun ) : \w+$
Rechercher (1er mot dun article) : \A\w+Rechercher (dernier mot dun article) : \w+\z
Quantificateurs Zroouunefois? Zroouplusieursfois* Uneouplusieursfois+
Correspondancelapluscourte Zroouplusieursfois*? Uneouplusieursfois+?
Nombredefoisdtermin {n},{n,m}et{n,}
pernamaudionsediInDesignCS4aspelecabillestiaInDesignCSquevendipitquiaItatendiciendamquatemquinesdolutlanessedquoeosrenestiadolorruInDesignCS3praevollest,quiaeverumadminissintipictenQuiquitevoloremagnietautfugiacusamipsamenInDesignCS5dusanducia
Rechercher (chiffre quelconque 1 ou +sieurs fois): \d+Rechercher (ID CS suivi ou non dun chiffre) : InDesign CS\d?Rechercher : \d{4}Rechercher : \l{3,7}Rechercher : \w{9,}
Rechercher (comportement avide) : \(.+\)Rechercher (non avide) : \(.+?\)
Debis(ilmoluptatauteumenis)etur?Quiderferum)queconeaqueredoloreicit,errum(aciaturremharionsequid)quicumreimusutfugiassivelitibusmolupisetipsania
Debis(ilmoluptatauteumenis)etur?Quiderferumqueconeaqueredoloreicit,errum(aciaturremharionsequid)quicumreimusutfugiassivelitibusmolupisetipsania
Correspondance (Sous-expression & Trouv)
Henri,Ballain78,rueOrdener,75018Paristl.:0145852445tl.:0647458412
Philippe,Lelvrier45,boulevardJean-Jaurs,21240Talanttl.:0680546958tl.:0347587474
Jean,Mouillart33,avenuedesSablons,33440Lesparretl.:0421514758tl.:0654714511
Rechercher (2 mots dbutants par une majuscule spars par une vigule) : (\u\l+), (\u\l+)Remplacer par (intervertir) : $2, $1
Sous-expressionmarquante()etnonmarquante(:) Trouv$0-$9
Jeudecaractres[]Jeudecaractresngatif[^]Alternativeou|
Rfrencearrire\1Lookbehind(?
Rechercher (texte entre guillemets) : (.+?)Remplacer par (mme texte en rouge sans guillemets) : $1 + style de caractre
cupideofficietlitvoloriobearumdolorendamvoluptaturaccaboriorestiacomnihitremutemsaeomnimussuntiaipsunturrescipsametquenonevolorerorendaecomnimilitioradevellantusexpliquaectoofficitiusreritoffictocustullitmagniaeratur?Quidquiomnisetesetdoluptatibeatereratatur,simaximusnestrumetoditiodoluptationreritadoloriaberfernatiquidquas
cupideofficietlitvoloriobearumdolorendamvoluptaturaccaboriorestiacomnihitremutemsaeomnimussuntiaipsunturrescipsametquenonevolorerorendaecomnimilitiordevellantusexpliquaectoofficitiusreritoffictocustullitmagniaeratur?Quidquiomnisetesetdoluptatibeatereratatur,simaximusnestrumetoditiodoluptationreritadoloriaberfernatiquidquas
Correspondance (Sous-expression & Trouv) Sous-expressionmarquante()etnonmarquante(:) Trouv$0-$9
Jeudecaractres[]Jeudecaractresngatif[^]Alternativeou|
Rfrencearrire\1Lookbehind(?APRS
AVANT
Correspondance (Jeu de caractres)
Lesequinihicaesapequam1547(quicoresquiFuga).3258Etestoffictetmagnieturadiadebisquam542volutemfacietomnihilmolorepereritfacidearumfaccae15874vendem(velestvelique3esma(conemhilibus1soluptaeped)utvideliatratistvelitate(58743)acestquiaeBrengre)autemprae.EtdolumBrangre:dolointFig.12lautipsumquevoluptasFig.34iditmaionperferrum34,76,98,87volorporeiuntaliamnamlautquamilloreptatesumrenosseditqueperateEtcoreroverciliquis:vellaboremipsanihiliquiaturFig.AremnonseriutquiculpaderemveliseaquoquoisFig.Baudionestrumratur
Rechercher (le chiffre 1, ou le 2, ou le 3, etc.) : [13567]Rechercher (un nombre impair) : \d*[13567]+\bRechercher (Brangre ou Brengre) : Br[ae]ngreRechercher (nimporte quelle lettre comprise entre o et v): [o-v]
Sous-expressionmarquante()etnonmarquante(:) Trouv$0-$9
Jeudecaractres[]Jeudecaractresngatif[^]Alternativeou|
Rfrencearrire\1Lookbehind(?
Correspondance (Jeu de caractres ngatif )
Lesequinihicae34sape:quam1547(quicoresquiFuga).Etestvendem(velest3esma(conemhilibus1soluptaeped)utvideliatratistvelitate(58743)acestBrengre)autem.EtdolumBrangre:dolointFig.12lautFig.34idit.iliquiaturFig.AremnonseriutFig.#quiculpaquoisFig.Baudionestrum
Lesequinihicae34sape:quam1547(quicoresquiFuga).Etestvendem(velest3esma(conemhilibusped)utvideliatvelitate(58743)acestBrengre)autem.
Lesequinihicae34sape:quam1547(quicoresquiFuga).Etestvendem(velest3esma(conemhilibusped)utvideliatvelitate(58743)acestBrengre)autem.
Sous-expressionmarquante()etnonmarquante(:) Trouv$0-$9
Jeudecaractres[] Jeudecaractresngatif[^] Alternativeou|
Rfrencearrire\1 Lookbehind(?Rechercher (labrviation Fig. suivie de tout sauf un chiffre quelconque: Fig\. [^\d]Rechercher (en dbut de , tout sauf deux-points suivis de deux points) : ^[^:]+:
Rechercher (une parenth. ouvrante suivie de tout sauf une parenth. fermante une ou +sieurs fois, suivie dune parenth. fermante) : \([^)]+\) quivalent \(.+?\)Rechercher (chane imbrique) : \([^()]+\)
Correspondance (Alternative) Sous-expressionmarquante()etnonmarquante(:) Trouv$0-$9
Jeudecaractres[]Jeudecaractresngatif[^]Alternativeou|
Rfrencearrire\1Lookbehind(?Loctumsicamiamidienihi,(fig.2)desenessumtradere,sed(fig.3)Castrointecointumpriout(tabl.4)videtquit,prorumte,finat,con(graph.A)verfeculintero(fig.A)nonstrenirtidemportumPatiquodiuveritil(tabl.5)ibunterniapra,ve,cusarefuidiumorearealarbendepecum.Am(graph.2)orat.Aximmovenihictuamednonlostiquo(graph.B)nocciaeiamlarisuntrumusetisseniumpultorioexnonsultorat,quamalatiem.
Rechercher (les abrviations tabl. ou fig. suivies dune espace et dun chiffre queconque) : (tabl\.|fig\.)\s(\d)
Correspondance (Rfrence arrire)
Sinet,inpraeceatquovoluptiseatussusdebitfuga.Idempore1998Idempore1998Idempore1998Idempore2000labinremreconeturesenosexpelibusetursineveroconemetc.etc.etetdolendisberaestrumrio.
Sinet,inpraeceatquovoluptiseatussusdebitfuga.Idempore2000labinremreconeturesenosexpelibusetursineveroconemetc.etc.etetdolendisberaestrumrio.
Rechercher : (etc\.) \1
Rechercher (entres identiques dans la liste) : ([^\r]+\r)\1+Remplacer par (une seule entre) : $1
Sous-expressionmarquante()etnonmarquante(:) Trouv$0-$9
Jeudecaractres[]Jeudecaractresngatif[^]Alternativeou|
Rfrencearrire\1Lookbehind(?AVANT APRS
Correspondance (Lookbehind)
Coreium$453.98consequiamus765.89inisetesequis543.87hit,(54.78)simi,$65.98volorelaborroipit,int6534.65
Coreium$453.98consequiamus765.89inisetesequis543.87hit,(54.78)simi,$65.98volorelaborroipit,int6534.65
Rechercher (un chiffre ou un point une ou +sieurs fois sils sont prcds du signe du dollar: (?Rechercher (me, er ou re sils sont prcds dun chiffre quelconque) : (?fugiam1ervoluptiossi2medollorrum4melandantsandiorpos1redolorpo.
Correspondance (Lookahead) Sous-expressionmarquante()etnonmarquante(:) Trouv$0-$9
Jeudecaractres[]Jeudecaractresngatif[^]Alternativeou|
Rfrencearrire\1Lookbehind(?Ballain,Henri78,rueOrdener,75018Paristl.:0145852445tl.:0647458412
Lelvrier,Philippe45,boulevardJean-Jaurs,21240Talanttl.:0680546958tl.:0347587474
Ballain,Henri78,rueOrdener,75018Paris01458524450647458412
Lelvrier,Philippe45,boulevardJean-Jaurs,21240Talant06805469580347587474
Rechercher (en dbut de un ou +sieurs caractres quelconques la condition dtre suivis de 06) : ^.+(?= 06)Remplacer par (contenu du presse papier avec mise en forme): ~c
Rechercher (tl. la condition dtre suivi de 0 suivi dun chiffre en 1 et 5) : tl\. :(?= 0[1-5])Remplacer : ~c
AVANT APRS
Correspondance (Lookaround) Sous-expressionmarquante()etnonmarquante(:) Trouv$0-$9
Jeudecaractres[]Jeudecaractresngatif[^]Alternativeou|
Rfrencearrire\1Lookbehind(?Maionserepelentdolorsit,cus(Figure23)iumfaccumautenisquidestotemquisiinciaquisesrestiorposamsinvelisplaciautexerrovitaruntprerio.Etquioptae.Namimreiusaernatedolupti(Figure24)onsequam,cusdaecticonsedquiatvolorestioremperanatquossumnosdenioccustiusamvolendiciam(Figure25)volorpos.
Rechercher (le mot figure, une espace et un ou plusieurs chiffres quelconques la condition dtre prcds dune parenthse ouvrante et suivis dune parenthse fermante : (?
Touches de modification Respectdelacasse
activ(?-i) dsactiv(?i)
Multiligne activ(?m) dsactiv(?-m)
Ligneparligne dsactiv(?s) activ(?-s)
Respectdesespaces activ(?-x) dsactiv(?x)
MagnissinnobissequenoselitFruitvendiorrovidfruitmagnatiasautfaciissediosiunt.Possedquoidquam,estrumquodiatesimporerepellorumquaepeconnobit,occaborecaedolodolorrumidutauditaateresciatemquisquamutinistprovidenihiciapligendiautetoffictemesestiisetessumautipitestoiumrepraturmagnatur,serumeicimillesteroesearumhitaplanitemquiamquiblaboruptaquisalibusestemvelissintiditemeverrumendinisdolorrotoreptatemquiaentfugit,intoomnimendaevolorumquatursequatursequedestiaquiat.Pligendiautetoffictemesestiisetessumautipitestoiumrepraturmagnatur,serumeicimillesteroesearumhitaplanitemquiamquiblaboruptaquisalibusestemsequatursequedestiaquiat.
Rechercher : (?i)fruit
Rechercher : (?m)^\w+Rechercher : (?-m)^\w+ (=\A\w+)
Rechercher : (?-s).+
Rechercher : .+ / (?s).+
Ajout de commentaires : (?#)
IDUG Paris(30/09/2010)Ressources
Sites & blogs Adobe(http://help.adobe.com/fr_FR/InDesign/6.0):listedesmtacaractres,conseilspourllaborationderecherchesGREP,etc.+Aideetsupport(http://www.adobe.com/fr/support/indesign)
indigrep[FR](http://www.indigrep.com):articlessuraspectsprcis,prsentationdescriptsGREP
indesignsecrets[EN]:unepagederfrencesGREP(http://indesignsecrets.com/grep)
indiscriptsdeMarcAutret[FR/EN](http://www.indiscripts.com):plusieursbilletstrsbiendocumentssurdiversesmanipulationsGREP;prolongeravecBlogNot!(http://marcautret.free.fr)
CariJansen(http://carijansen.com):plusieursarticlessurlesstylesGrep
IDUG Paris(30/09/2010)Ressources
GrepetInDesignCS3dOlivierBerquin[FR](http://sites.google.com/site/olivierberquin/indesign-grep):quelquesexemplesetliens
theindesignerdeMichaelMurphy[EN](http://www.theindesigner.com):quelquesvidosdontInDesignCS4:LearningGREPde3h45mn
Tips&TechniquesdeKeithGilbert[EN](http://blog.gilbertconsulting.com):quelquesarticlessurdesR/R(URLs)
incunbulodeEduardoAntunes[PT](http://www.incunabulo.com):miseenformesoriginalesavecsoulignement+PDFsynoptiquedesmtacaractresGREP
SMI-Publishing-BlogdeJochenF.Uebel[DE](http://blog.smi.ch):quelquesarticlessurdesmanipulationsassezoriginales(approche,soulignement,sparateurdemilliers)
adobeindesigndeBorisKashcheev[RU](http://adobeindesign.ru):sitequivautlapeinedtrevu
IDUG Paris(30/09/2010)Ressources
Forum Adobe[EN](http://forums.adobe.com/community/indesign/indesign_general)
indesignsecrets[EN]>GeneralInDesignTopics(http://indesignsecrets.com/forum/general-indesign-topics)
Wisibility[FR](http://www.wisibility.com/forum/indesign)
Scripts GREP scriptsdePeterKahrel(http://www.kahrel.plus.com > Free scripts > Various GREP
utilities)Change case: script pour changer la casse des caractres partir de regex enregistres dans le panneau Rechercher/Remplacer
GREP editor : script pour rdiger des regex, les tester, les exporter vers les styles GREP, voir le contenu de toutes les regex enregistres
GREP mapper : script pour voir ce que chaque mtacaractre GREP slectionne parmi les caractres Unicode dont on dtermine librement les zones
IDUG Paris(30/09/2010)Ressources
GREP overview : pour visionner lensemble des regex enregistres
Chain GREP queries : script pour enchaner des requtes GREP (excuter sur le document ou de les exporter vers un nouveau document ID)
scriptdeTeusdeJong(http://www.jongware.com/idgrephelp.html)What the GREP : script qui donne la description dcortique dune expression rgulire [EN]
scriptdeThomasSilkjr(http://indesigning.net/search-and-change-case)Search Change Case : script pour changer la casse des caractres
scriptdeAdiRavid(http://indesignsecrets.com/downloads/TurnGrepStyles2CharStyles.zip)TurnGrepStyles2CharStyles : transformer en vrais styles de caractres les styles GREP (utile pour exportation vers CS3)
AutreRegexCellStyle : formater une cellule de tableau en fonction de requtes GREP [JP] (http://d.hatena.ne.jp/seuzo/20090814/1250176724)
http://www.jongware.com/idgrephelp.htmlhttp://indesigning.net/search-and-change-case
IDUG Paris(30/09/2010)Astuces
Intervertir les colonnes dun tableau
IDUG Paris(30/09/2010)Astuces
Insrer les lettres alphabtiques dans un index