Je ne suis pas génial avec regex et je ne comprends pas pourquoi c'est choisir le prochain caractère après le -
/[\-][^ - ]/g
avec cela, il sélectionne - et le caractère suivant.
Je veux sélectionner le tiret entre deux nombres, mais je ne veux pas sélectionner les tirets qui ont un espace avant et après.
en réalité, j'essaie de l'utiliser dans Ubuntu pour renommer de manière récursive les répertoires nommés
#### - ##-##
à
#### - ##:##
ubuntu
regex
batch-rename
Russ
la source
la source
Réponses:
Habituellement, on transforme de tels motifs en ancrant le tiret aux chiffres qui l’entourent, par exemple:
C'est-à-dire, faire correspondre un chiffre de chaque côté et utiliser une référence arrière pour remettre les chiffres en arrière.
Réellement
sed
n’est pas en soi un bon exemple, puisque c’est (commebash
) une utilisation d’ERE (expressions régulières étendues) et non la norme . Cependant, comme cela concerne Ubuntu, on peut supposer que vous utilisez GNU sed , qui a un-r
option pour spécifier les ERE.la source