Forum Wisibility

AUTOMATISATIONS => GREP => Discussion démarrée par: Jean-Michel le octobre 13, 2013, 21:38:35 pm

Titre: Transformer un texte particulier en balise URL
Posté par: Jean-Michel le octobre 13, 2013, 21:38:35 pm
Bonsoir,

J'ai un vieux projet de site internet et je pense pouvoir enfin le mettre en place prochainement. Je suis en train de remettre au carré de vieux contenus écrits dans ma jeunesse.

J'aurai aimé savoir s'il était possible de faire un grep (dans Indesign) de façon à ce que un titre de chanson préparé de la façon suivante **Au bout du monde** pourrait se transformer [Au bout du monde|chanson/au-bout-du-monde]. Et dans un second temps, si c'est possible de transformer tous les caractères exotiques dans la partie URL.

(et tu veux pas qu'il fasse le café, aussi ?) :-)
Titre: Re : Transformer un texte particulier en balise URL
Posté par: QueenGhost le octobre 14, 2013, 10:55:48 am
Salut Jean-Michel,

Pas clair !   :-\  sauf la partie "(et tu veux pas qu'il fasse le café, aussi ?)"  ;)

Peux-tu être plus précis ?
Titre: Re : Transformer un texte particulier en balise URL
Posté par: Jean-Michel le octobre 14, 2013, 11:03:48 am
Désolé je retente ma chance.  ;D

Je voudrais qu'à chaque fois que l'on rencontre **Au bout du monde** cela se transforme en URL de langage wiki [Au bout du monde|chanson/au-bout-du-monde].

Ce qui se traduit par plusieurs étapes à mon sens :
- remplacer les ** par des crochets ouvrants et fermants
- avant la fin de crochet fermant, de placer le signe |chanson/
- qu'une duplication de la valeur de base (exemple : Au bout du monde) se transforme en bas de casse et que les espaces soient remplacés par des tirets.
- si la valeur de base transformée en URL (exemple : Yé Mama Yé) comporte des caractères exotiques (accents, signes de ponctuations) cela soit modifié pour donner (exemple : ye-mama-ye).
Titre: Re : Transformer un texte particulier en balise URL
Posté par: QueenGhost le octobre 14, 2013, 14:27:01 pm
Ok.

Comme la Reine est vraiment fainéante et qu'elle utilise Multi-Find/Change, elle procèderait en plusieurs temps :

1er RC : capture ci-jointe.
Ce qui donnerait :

**Au bout du monde** --> [Au bout du monde|chanson/Au bout du monde]

2e RC :
Elle rechercherait ce qui se trouve entre "/" et "]"
/aa bbbb ccc dddddd]

qu'elle remplacerait par :
aa-bbb-ccc-dddddd

Ce RC serait dupliqué autant de fois pour cerner toutes les occurrences :

aa bbb
aa bbb ccccc
aa bbb ccccc dddd
aa bbb ccccc dddd eeee
...

Enfin, elle rechercherait entre ces mêmes glyphes ce qui est en capitales et remplacerait par des bas de casse, idem pour les caractères accentués.

Solution de fainéante qui n'a pas envie de trop réfléchir.   ;)

Toutefois, si l'on associe tous les RC dans un set MFC, la chose est liquidée en 1 clic !




Titre: Re : Transformer un texte particulier en balise URL
Posté par: Jean-Michel le octobre 14, 2013, 18:21:15 pm
Merci beaucoup pour la rapidité de ta réponse :)

La première requête fonctionne.

Par contre, la seconde semble sans effet. Peux-tu me dire si j'ai bien recopié ?
(?<=\/)(\w+)\s+(\w+)+(\w+)\s+(\w+)(?=])
Titre: Re : Transformer un texte particulier en balise URL
Posté par: QueenGhost le octobre 14, 2013, 19:15:47 pm
Bonsoir Jean-Michel,

Ce qui est important, c'est que tu comprennes l'écriture des régex que les uns et les autres peuvent te proposer.

Si tu ne le connais pas déjà, je te conseille le livre de Laurent Tournier (La référence !).

La Reine est pragmatique [Elle laisse l'orthodoxie du "bien-écrit" à d'autres !   ;) ].

J'ai revérifié. La regex est OK... mais tu l'as mal recopiée !!   ;)

Elle recherche, entre "/" et "]" (utilisation des 2 look..., pour cibler la recherche), une chaîne de caractères comportant 4 mots et 3 espaces entre ces mots. En fait, 4 mots [signalé chacun par : (\w+)] séparés par un ou plusieurs espaces quelconques [signalé chacun par : \s+].

Ex. : "Au bout du monde".

Nota : \s+ n'est pas entre parenthèses, histoire de faire des économies. Ce qui autorise 9 mots (ce qui t'intéresse) et 8 espaces !!

Elle ne trouvera toutefois pas : "Au bout du monde impitoyable", pas plus que "Au bout du"...

C'est pour cela qu'elle doit être dupliquée et simplifiée ou complexifiée (ajout/suppression de la chaîne : (\w+)\s+, soit : un mot & un espace // appelons cette chaîne : A).

Pour trouver :

Une chanson qui s'appelle "Flash" : A
Une autre : "Bohemian Rhapsody" : AA
"Made In Heaven" : AAA
"Ride The Wild Wind" : AAAA (notre exemple : "Au bout du monde", en capture précédente)
"Who Wants To Live Forever" : AAAAA
"Too Much Love Will Kill You" : AAAAAA
...

[Tout le monde aura reconnu des titres de notre Reine (pas moi, Lui ! // sauf le dernier titre, repris par Freddie Mercury et qui est un hit solo de Brian May, le lead guitar de Queen ; le 5e titre fait partie du livret écrit par Queen pour la B.O. du film Highlander)   ;) ]
Titre: Re : Transformer un texte particulier en balise URL
Posté par: QueenGhost le octobre 14, 2013, 21:26:49 pm
Chère Reine,

Une façon plus élégante de traiter cette 2e régex :

Rechercher : (?<\/)(.+)\s+(.+)(?=])
Remplacer : $1-$2

En répétant cette même régex, disons 100 fois dans un set MFC, il y a une forte probabilité pour que le titre de la chanson qui comporte 100 mots ne passe pas entre les mailles du filet de la régex.   ;)

Ne me remerciez pas, ma Reine !

Royalement dévoué !   ;)
Titre: Re : Transformer un texte particulier en balise URL
Posté par: Jean-Michel le octobre 14, 2013, 21:41:50 pm
Bonsoir,

Je connais le livre de Laurent, j'ai réussi à en écrire quelques unes pour mes besoins professionnels. Laurent et d'autres ici ont eu la gentillesse de m'aider ici. Je l'avoue je ne fais pas assez de gymnastique de grep et j'ai tendance à exercer un autre métier maintenant. Je te rassure, j'aime bien comprendre ce que je fais :)

Merci pour ta nouvelle proposition, je m'y attarde un peu plus tard.
Titre: Re : Transformer un texte particulier en balise URL
Posté par: QueenGhost le octobre 14, 2013, 21:49:21 pm
Petit rectificatif :

[...] En répétant cette même régex, disons 99 fois dans un set MFC, il y a une forte probabilité pour que le titre de la chanson qui comporte 100 mots ne passe pas entre les mailles du filet de la régex.   ;)
Titre: Re : Transformer un texte particulier en balise URL
Posté par: Jean-Michel le novembre 06, 2013, 16:23:57 pm
Désolé j'ai pas lâché l'affaire mais j'ai été happé par d'autres choses :'(
Titre: Re : Transformer un texte particulier en balise URL
Posté par: QueenGhost le novembre 06, 2013, 16:28:17 pm
Don't be sorry, guy, we only want to help you!  ;)