Perl ( chaine de caractères )

Résolu
THIRIOT Messages postés 2 Statut Membre -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
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 27813 Statut Modérateur 3 363
 
Salut,

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

$B=substr($A,-1)
0
depassage
 
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 21644 Statut Modérateur, Contributeur sécurité 3 570 > depassage
 
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 Statut Membre
 
Super franchement on peut chercher des heures pour pas grand chose encore merci
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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 27813 Statut Modérateur 3 363
 
Bien vu, j'ai mal lu l'énoncé ! :-)
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570 > blux Messages postés 27813 Statut Modérateur
 
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