Page 1 of 1

Caractère générique

Posted: 2022-11-11 16:46:15
by faboss
Bonjour,
Je souhaite effectuer un remplacement de chaîne de plusieurs fichiers dans lesquels seul un caractère diffère.
Existe-t-il un caractère générique du style "?" qui saurait être interprété par Ant Renamer ?

J'ai trouvé ce topic qui date de 2003 :
viewtopic.php?p=5128&hilit=g%C3%A9n%C3%A9rique#p5128

Peut être y a t'il eu une évolution depuis...

Merci pour ce fabuleux outils que j'utilise depuis tant d'années :grinking:

Re: Caractère générique

Posted: 2022-11-16 08:06:15
by antp
Bonjour,
On peut faire ça probablement facilement avec les expressions rationnelles (regular expressions)
Si besoin d'aide (comme c'est assez compliqué pour les non-initiés) je peux donner la marche à suivre sur base d'une description précise ou d'un exemple de la modification voulue.
Désolé pour le délai de la réponse, je ne passe que de temps en temps sur le forum ;)

Re: Caractère générique

Posted: 2022-11-20 10:07:32
by faboss
Pas de soucis pour le délais :)

Entre temps je me suis débrouillé manuellement.

En fait depuis plusieurs années, je me demande comment utiliser des caractères génériques, bien pratiques, dans ton outil.
Comme par exemple :
* : pour une chaîne de caractère
? : pour un seul caractère

Un fonctionnement à la manière de la recherche de fichiers sous windows serait idéal.

Toto*.txt
=> renvoie les fichiers txt commençant par Toto, peu importe ce qui suit.

Toto?.txt
=> renvoie les fichiers txt commençant par Toto suivi d'un seul caractère, peu importe lequel.

Re: Caractère générique

Posted: 2022-11-21 08:20:18
by antp
Ça dépend ce qu'on veut faire. Difficile de donner des explications vraiment simples sans cas concret...
Si on veut par exemple remplacer tous ce qui contient "Toto" suivi de 4 chiffres par "Bob", sans les 4 chiffres :
expression = (.*)Toto\d{4}(.*)
nouveau nom = $1$2
Dans les expressions rationnelles, on a :
- les parenthèses pour indiquer les groupes à capturer (réutilisés avec $ + numéro du groupe dans le nouveau nom)
- le point qui indique "n'importe quel caractère" ; pour un vrai point, on utilise \. ; idem pour représenter le caractère "parenthèse", ça devient \( ou \)
- * pour indiquer "0 ou plusieurs occurrences de ce qui précède ; on a aussi ? pour indiquer "0 ou 1 occurrence" et + pour indiquer "1 ou plusieurs occurrences" ; donc l'équivalent du ? de Windows est .? et * est .*
- \d indique un nombre ; il y a aussi \w pour les indiquer lettre+chiffre
- { } pour indiquer le nombre d'occurrences ; \d{4} = 4 chiffres ; on peut aussi mettre un min et un max : \d{2,4} = de 2 à 4 chiffres
Il y a encore plein d'autres choses, par exemple [ ] pour les ensembles de caractères : [aeiouy] = une voyelle, [^aeiouy] = une consonne, [a-g] = une lettre entre a et g (accents exclus), à combiner avec ? ,* ou { } pour en avoir plusieurs.
On peut aussi avoir un "ou" : (toto|tata) pour indiquer qu'on doit trouver toto ou tata à cet endroit
Plus d'infos : https://regex.sorokin.engineer/fr/lates ... sions.html

Re: Caractère générique

Posted: 2022-11-22 17:38:29
by faboss
Merci pour les explications et pour le lien :grinking:
Ça va m'aider !