j'ai une petite question concernant une expression r=E9guliere, en fait
je cherche, =E0 partir d'une chaine de caract=E8res (ex: "Le prix est 22
154,45 =80") =E0 supprimer tous les caract=E8res non num=E9rique mais
(petite subtilit=E9) en gardant le point virgule. (de fa=E7on =E0
recup=E9rer que "22154,45")
pour supprimer les caract=E8res je vois comment faire mais c'est le
point virgule qui me pose pb.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Gaborit
À (at) 14 Nov 2005 09:08:19 -0800, "BillyNoGates" écrivait (wrote):
j'ai une petite question concernant une expression réguliere, en fait je cherche, à partir d'une chaine de caractères (ex: "Le prix est 22 154,45 ") à supprimer tous les caractères non numérique mais (petite subtilité) en gardant le point virgule. (de façon à recupérer que "22154,45")
pour supprimer les caractères je vois comment faire mais c'est le point virgule qui me pose pb.
Quelqu'un peut m'aider ?
Une méthode de suppression qui marche sur votre exemple (mais pas dans tous les cas) :
$texte = "Le prix est 22 154,45 euros"; $texte =~ s/[^d,.]//g;
Dans le cas général, il vaut mieux essayer de reconnaître les nombres :
$texte = "Le prix est 22 154,45 euros au lieu de 22.34 francs"; @nombres = $texte =~ m/([ds_]*d(?:[,.]d+))/g; s/s//g foreach @nombres; s/,/./ foreach @nombres; print "@nombresn";
(sans garantie...)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) 14 Nov 2005 09:08:19 -0800,
"BillyNoGates" <aurelien.jacak@gmail.com> écrivait (wrote):
j'ai une petite question concernant une expression réguliere, en fait
je cherche, à partir d'une chaine de caractères (ex: "Le prix est 22
154,45 ") à supprimer tous les caractères non numérique mais
(petite subtilité) en gardant le point virgule. (de façon à
recupérer que "22154,45")
pour supprimer les caractères je vois comment faire mais c'est le
point virgule qui me pose pb.
Quelqu'un peut m'aider ?
Une méthode de suppression qui marche sur votre exemple (mais pas dans
tous les cas) :
$texte = "Le prix est 22 154,45 euros";
$texte =~ s/[^d,.]//g;
Dans le cas général, il vaut mieux essayer de reconnaître les nombres :
$texte = "Le prix est 22 154,45 euros au lieu de 22.34 francs";
@nombres = $texte =~ m/([ds_]*d(?:[,.]d+))/g;
s/s//g foreach @nombres;
s/,/./ foreach @nombres;
print "@nombresn";
(sans garantie...)
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) 14 Nov 2005 09:08:19 -0800, "BillyNoGates" écrivait (wrote):
j'ai une petite question concernant une expression réguliere, en fait je cherche, à partir d'une chaine de caractères (ex: "Le prix est 22 154,45 ") à supprimer tous les caractères non numérique mais (petite subtilité) en gardant le point virgule. (de façon à recupérer que "22154,45")
pour supprimer les caractères je vois comment faire mais c'est le point virgule qui me pose pb.
Quelqu'un peut m'aider ?
Une méthode de suppression qui marche sur votre exemple (mais pas dans tous les cas) :
$texte = "Le prix est 22 154,45 euros"; $texte =~ s/[^d,.]//g;
Dans le cas général, il vaut mieux essayer de reconnaître les nombres :
$texte = "Le prix est 22 154,45 euros au lieu de 22.34 francs"; @nombres = $texte =~ m/([ds_]*d(?:[,.]d+))/g; s/s//g foreach @nombres; s/,/./ foreach @nombres; print "@nombresn";
(sans garantie...)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>