Forums Développement Multimédia

Aller au contenu

Nettoyage avec Grep [A]

PAO InDesign Acrobat PDF

4 réponses à ce sujet

#1 Obi-wan Kenobi

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 09 December 2012 - 02:34 AM

Bonsoir,

J'avoue qu'à l'heure qu'il est, les neurones ont de plus en plus de mal à suivre le même chemin.
Pour faire dans l'humour (un peu vaseux vu l'heure), je suis en pleine dégrèpitude !!

Voici mon problème :

syntaxe de départ :

{n \choice p}

syntaxe à l'arrivée :

\left({\begin{array}{c}{n}\\{p}\end{array}}\right)

n et p peuvent être n'importe quoi :

n, n + 1, n - 1, ..., 12, ..., p, p + 1, p + 2, ...

La liste n'est pas exhaustive.

GREP évidemment :

Rechercher : {"quelque chose 1" \choice "quelque chose 2"}
Ce qui peut donner :
(\{)((?<=\{).+?(?=\ \\choice\ ))(\ \\choice\ )((?<=\ \\choice\ ).+?(?=\}))(\})

Remplacer par : \left({\begin{array}{c}{$2}\\{$4}\end{array}}\right)

Petit souci : le "\r" de "\right" (à la fin du Remplacer) est considéré évidemment comme un retour-charriot. Et là, plus d'idée !
Question subsidiaire : peut-on faire plus simple ?

Merci d'avance. ;-)
Que la Force soit avec nous !...

#2 Eddy.vh

    Éternel apprenti.

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 1194 messages

Posté 09 December 2012 - 13:01 PM

Bonjour.
Ben dis-moi, tu as trouvé la perle rare.
Pas trop d'idées non plus hormis deux requêtes :

Rechercher : (\{)((?<=\{).+?(?=\ \\choice\ ))(\ \\choice\ )((?<=\ \\choice\ ).+?(?=\}))(\})
Remplacer par (exemple) : \left({\begin{array}{c}{$2}\\{$4}\end{array}}\droite)

Rechercher : (?<=\\)droite(?=\))
remplacer par : right

Enregistrer ces deux requêtes et les appeler dans un js.

#3 Obi-wan Kenobi

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 09 December 2012 - 13:18 PM

Bonjour Eddy,

Effectivement, bien vu (en tout cas, faute de mieux...). Merci pour le code de la 2e Regex.
En procédant en 2 temps et en utilisant Multi-Find/Change (j'en suis à 65 regex dans le Set, alors un de plus ne pose pas de problème !) :

1 :
Rechercher : (\{)((?<=\{).+?(?=\ \\choice\ ))(\ \\choice\ )((?<=\ \\choice\ ).+?(?=\}))(\})
Remplacer par (exemple) : \left({\begin{array}{c}{$2}\\{$4}\end{array}}\BADRight)

-- "BADRight" a plus de chance de ne pas se retrouver ailleurs que le mot "droite" --

2 :
Rechercher : (?<=\\)BADRight(?=\))
Remplacer par : right)

Reste que l'approche est un peu contrariante... mais si on ne peut pas faire autrement, c'est bon à savoir.

Merci Eddy. A bientôt. ;-)
Que la Force soit avec nous !...

#4 Eddy.vh

    Éternel apprenti.

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 1194 messages

Posté 09 December 2012 - 13:37 PM

Voir le messageObi-wan Kenobi, le 09 December 2012 - 13:18 PM, dit :

-- "BADRight" a plus de chance de ne pas se retrouver ailleurs que le mot "droite" --

C'est bien pour ça que je ne cible que les "droite" précédés d'un antislash et suivis d'une parenthèse mais bien entendu, n'importe quel mot ayant peu de chance d'être trouvé ailleurs permet de travailler avec une plus grande sécurité.

Attention aussi à ton remplacer par : right), il ne faut pas de parenthèse en fin puisque pas sélectionné par le rechercher ! ;)

#5 Obi-wan Kenobi

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 259 messages

Posté 09 December 2012 - 13:48 PM

... j'avais corrigé.
En tout cas, Merci Eddy de m'avoir rejoint dans le monde du "Hard Cleaning with Grep"! ;-)
De l'aide ne sera pas inutile !
Que la Force soit avec nous !...



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP