Cette capture d’écran, contenant une regex pour retrouver des locutions latines, parle d’elle-même.

Grâce à notre ami Peter Kahrel, plus aucun soucis. Rédigez vos regex directement dans un document InDesign pré-formaté, puis exportez-les automatiquement dans les champs Rechercher / Remplacer par du panneau Rechercher/Remplacer, onglet GREP.

Avant d’expliquer dans le détail comment procéder, téléchargez ici le dossier grep_edit. Il renferme cinq JavaScripts et un fichier InDesign au format .inx compatible CS3 et CS4. Placez les scripts dans le dossier destiné à cet effet.

1) Rédiger une requête GREP

Rien de plus simple. Ouvrez le fichier grep_format.inx et écrivez-y votre formule. 

Si vous utilisez InDesign CS4, grâce à d’ingénieux styles GREP (implémentés dans le style de paragraphe find_what), vos métacaractères se formatent aussitôt sur le modèle de la coloration syntaxique (ex : caractères littéraux en noir, caractères génériques en rouge, etc.).

Remarque : les styles GREP n’existant pas sous InDesign CS3, il faut utiliser le script grep_applystyles pour formater comme ci-dessus les expressions régulières. 

Vous pouvez écrire une regex en continu. Mais vous pouvez aussi la répartir sur plusieurs lignes pour encore plus de clarté. Dans l’exemple ci-contre, nous avons inséré un saut de paragraphe après le signe de l’alternative (|).

Vous pouvez aussi ajouter des commentaires à votre regex. Précédez-les de deux barres obliques :

Si vous souhaitez conserver les commentaires lors de l’insertion de la regex dans le champ Rechercher, utilisez plutôt les caractères spéciaux spécialement conçus pour l’ajout de commentaire dans une expression régulière : (?#)

2) Exporter la regex dans les zones de dialogue Rechercher / Remplacer par

Votre expression régulière terminée, l’intérêt est de l’insérer dans le champ prévu à cet effet. Vous pourriez manuellement la sélectionner, la copier puis la coller dans la zone de dialogue Rechercher. Faire de même pour celle du champ Remplacer par.

Le JavaScript grep_doc2dialog le fait pour vous.

Au préalable, vous aurez pris soin d’ouvrir le panneau Recherche/Remplacer, onglet GREP et d’appliquer le style de paragraphe find_what à l’expression régulière.

Si vous avez une seule expression régulière dans votre document, vous pouvez sélectionner le bloc la contenant et lancer le script. Le mieux reste de la sélectionner directement sans avoir nécessairement besoin de le faire dans sa totalité.

Jusqu’à présent, nous avons uniquement pris en compte l’exemple d’une expression régulière écrite dans la seule zone Rechercher. Qu’en est-il si elle est associée à une regex dans le champ Remplacer par ? La démarche pour exporter une requête complète (Rechercher + remplacer) diffère peu de la précédente :

  • Ouvrez le panneau Rechercher/Remplacer ;
  • Appliquez le style find_what à la regex de recherche ;
  • Appliquez le style change_to à la requête de remplacement ;
  • Sélectionnez les deux expressions régulières ;
  • Lancez le script grep_doc2dialog.

Vous pouvez aussi n’exporter que la requête de la zone Remplacer par en ne sélectionnant qu’elle.

3) Importer une regex dans un document InDesign

Vous avez sûrement déjà copié une expression régulière de la zone de dialogue Rechercher pour la coller dans un document. Cette manipulation de copier/coller, en principe toute simple, ne l’est pas dans le cas présent : le raccourci clavier (Ctrl C) est inopérant ; le double-clic, pour  sélectionner une regex en entier, ne fonctionne pas.

C’est ici que le JavaScript grep_dialog2doc prend la relève.

Ouvrez le panneau Rechercher/Remplacer, choisissez la requête GREP pré-enregistrée (ou non) que vous souhaitez importer dans un document InDesign. Tracez-y un bloc Texte et placez le curseur de la souris à l’intérieur. Cliquez sur le script grep_dialog2doc : l’expression régulière prend place dans le bloc.

En plus de la requête du champ Rechercher, le script importe aussi dans le document l’expression régulière de la zone Remplacer par.

En revanche, le script ne permet pas d’importer d’éventuels critères contenus dans les zones Rechercher ou Remplacer le format.

Conclusion

Pouvoir écrire une expression régulière (complexe) avec cet « éditeur GREP » est indéniablement un plus. On y gagne en lisibilité grâce à la coloration syntaxique, à la disposition sur plusieurs lignes et à l’ajout de commentaires. Les risques d’erreur sont moins grands.

En revanche, dans la mesure où l’on ne dispose pas des métacaractères « prêts à l’emploi », comme ils existent dans les différents sous-menus du panneau Rechercher/Remplacer, la syntaxe GREP doit être bien connue.

Dans le cas contraire, une liste des métacaractères GREP sous les yeux peut s’avérer utile. Et si l’on pouvait écrire une requête GREP en langage naturel, ne serait-ce pas encore plus facile ?