[perl] insérer des caractères dans une chaine
Résolu
stephane
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
J'essaie d'insérer des caractères dans une chaînes, en Perl. Ma chaine est par exemple :
12/1999-09/2002
et j'aimerais que cela me donne :
12/1999 à 09/2002
J'ai essayé avec tr mais je n'ai pu que remplacer le '-' par 'à' pour avoir
12/1999à09/2002.
merci
J'essaie d'insérer des caractères dans une chaînes, en Perl. Ma chaine est par exemple :
12/1999-09/2002
et j'aimerais que cela me donne :
12/1999 à 09/2002
J'ai essayé avec tr mais je n'ai pu que remplacer le '-' par 'à' pour avoir
12/1999à09/2002.
merci
3 réponses
-
Salut,
perl -e '$v = 12/1999-09/2002; ($t = $v) =~ s/(?<=)-(?=\d)/ à /g;print $t,"\n";'
ou sans le test avant et test arrièreperl -e '$v = 12/1999-09/2002; ($t = $v) =~ s/(\d)-(\d)/$1 à $2/g;print $t,"\n";'
lami20j
P.S. Le teste avant et le test arrière nous permet de regarder avant et arrière pour s'assurer qu'on a une chiffre, mais on ne capture rien.
Ce n'est pas très important dans ce cas, mais en cas de plusieurs données l'efficacité peut augmenté. -
-
petite corréction
Au lie de$v = 12/1999-09/2002
à écrire$v = "12/1999-09/2002"
lami20j