Perl ( chaine de caractères )

Résolu/Fermé
THIRIOT Messages postés 2 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 12 février 2007 - 12 févr. 2007 à 11:21
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 24 févr. 2009 à 13:47
Bonjour

J'ai besoin extraire le dernier chiffre d'une chaine de caractères sans connaitre la longueur de cette chaine , et tout cela dans le langage Perl
Merci d'avance pour votre aide
A voir également:

3 réponses

blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
12 févr. 2007 à 11:39
Salut,

il suffit d'utiliser la fonction substr avec un indice négatif.

$B=substr($A,-1)
0
Je passe par ici par hasard,

pour prendre le dernier caractère e manière élégante,

my $v="un truc";
print chop($v);

affichera sur la sortie

c

voir aussi chomp
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > depassage
24 févr. 2009 à 13:47
Salut,

J'ai besoin extraire le dernier chiffre d'une chaine de caractères

Il ne demande pas le dernier caractère de la chaine mais le dernier chiffre dans une chaîne qui n'est pas forcément le dernier caractère de la chaîne ;-).

La fonction chop va envoyer le dernier caractère mais il faudra aussi tester si ce caractère est un chiffre.
La fonction chomp est utile pour effacer le saute de ligne.
0
THIRIOT Messages postés 2 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 12 février 2007
12 févr. 2007 à 11:57
Super franchement on peut chercher des heures pour pas grand chose encore merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
12 févr. 2007 à 14:27
Salut,


extraire le dernier chiffre d'une chaine de caractères

Si la chaine est : "j'ai écrit 5 script perl" alors avec la solution de blux de retourne l et pas 5

Voilà une solution plus générique
$chaine = "j'ai écrit 5 script perl";
($res)=$chaine=~/(\d)\D*$/;
--
lami20j
0
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 3 312
12 févr. 2007 à 14:49
Bien vu, j'ai mal lu l'énoncé ! :-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024
12 févr. 2007 à 14:55
Salut,

je pense que c'est la question qui a été mal posée vu que ta réponse est satisfaisante :-))
ce qui n'empêche pas d'avoir plusieurs solutions en Perl :-))
0