Récupérer une chaine de caractère à droite
Mel14141
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je débute complètement en perl et j'ai besoin d'aide sur un sujet.
J'ai créé un petit programme en perl qui permet :
- d'aller dans un répertoire
- de lire tous les fichiers qui s'y trouvent
- de créer un fichier excel
- de mettre dans ce fichier excel certaines données
Etant donné que ces données sont des log je n'ai pas besoin de tout récupérer.
Je m'explique :
sur une ligne j'ai : "blablablablablabla - bliblibliblibliblibliblibli bliblibliblibliblibliblibli "
Je voudrais récupérer la chaine derrière le "-" soit "bliblibliblibliblibliblibli bliblibliblibliblibliblibli " sachant que je récupére la totalité de la chaine dans une variable qui s'appelle "$totally".
Merci d'avance
Je débute complètement en perl et j'ai besoin d'aide sur un sujet.
J'ai créé un petit programme en perl qui permet :
- d'aller dans un répertoire
- de lire tous les fichiers qui s'y trouvent
- de créer un fichier excel
- de mettre dans ce fichier excel certaines données
Etant donné que ces données sont des log je n'ai pas besoin de tout récupérer.
Je m'explique :
sur une ligne j'ai : "blablablablablabla - bliblibliblibliblibliblibli bliblibliblibliblibliblibli "
Je voudrais récupérer la chaine derrière le "-" soit "bliblibliblibliblibliblibli bliblibliblibliblibliblibli " sachant que je récupére la totalité de la chaine dans une variable qui s'appelle "$totally".
Merci d'avance
A voir également:
- Récupérer une chaine de caractère à droite
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Recuperer message whatsapp supprimé - Guide
- Caractere speciaux - Guide
- Comment recuperer une video sur youtube - Guide
2 réponses
Salut,
Si tu as un seul
Dal
Si tu as un seul
-séparé par un espace avant et après, c'est assez facile :
#!/usr/bin/perl use strict; use warnings; my $st = "blablablablablabla - bliblibliblibliblibliblibli bliblibliblibliblibliblibli "; if ($st =~ /\s-\s(.*)$/) { my $totally = $1; # do something with $totally } else { print "Error, incorrect format in $st\n"; }
Dal
Bonjour :
Soit tu coupes avec la fonction « split » :
En Perl 5 :
En Perl 6 :
Soit tu utilises les expressions régulières :
En Perl 5 :
En Perl 6 :
Soit tu coupes avec la fonction « split » :
En Perl 5 :
use strict; use warnings; my $totally = 'blablablablablabla - bliblibliblibliblibliblibli bliblibliblibliblibliblibli '; my @donnees = split(' - ', $totally); print $donnees[1] . "\n";
En Perl 6 :
my $totally = 'blablablablablabla - bliblibliblibliblibliblibli bliblibliblibliblibliblibli '; my @donnees = split(' - ', $totally); put @donnees[1];
Soit tu utilises les expressions régulières :
En Perl 5 :
my $totally = 'blablablablablabla - bliblibliblibliblibliblibli bliblibliblibliblibliblibli '; $totally =~ /^[^-]+ - (.+)$/; print $1 . "\n";
En Perl 6 :
my $totally = 'blablablablablabla - bliblibliblibliblibliblibli bliblibliblibliblibliblibli '; $totally ~~ /^.+ \- (.+)$/; put $0;
Merci pour ta réponse mais la ligne de commande n'ont aucun effet, même pas de message d'erreur.
Penses-tu qu'il peu y avoir un soucis dans mon code ?
ou celui de Felice_
P.S.
Salut Felice_ ! c'est sympa d'avoir un contributeur sur le forum Perl, et qui en plus est lettré en Perl 6 ;-)