Rechercher : dans
Par :

[perl] insérer des caractères dans une chaine

Dernière réponse le 22 aoû 2006 à 15:01:51 stephane, le 21 aoû 2006 à 00:26:49 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [perl] insérer des caractères dans une chaine » dans :
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Javascript - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...

1

lami20j, le 21 aoû 2006 à 06:47:55

Salut,

perl -e '$v = 12/1999-09/2002; ($t = $v) =~ s/(?<=)-(?=\d)/ à /g;print $t,"\n";'
ou sans le test avant et test arrière
perl -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é.

Répondre à lami20j

2

stephane, le 21 aoû 2006 à 21:47:11

Ca marche au poil ! Merci beaucoup !

Répondre à stephane

3

lami20j, le 22 aoû 2006 à 00:00:05

Salut,

De rien.

lami20j

P.S. En général quand tu traites de chaînes de caractères en Perl pense aux expressions régulières (regex).
Ca ne veut pas dire que les regex sont la seule solution. Il y en a beaucoup d'autres ;)

Répondre à lami20j

4

 lami20j, le 22 aoû 2006 à 15:01:51

Petite corréction

Au lie de

$v = 12/1999-09/2002
à écrire
$v = "12/1999-09/2002"
lami20j

Répondre à lami20j
Collection CommentÇaMarche.net