OVH Cloud OVH Cloud

pb de regexp

4 réponses
Avatar
Ben
Salut à tous,
je n'arrive pas à comprendre une erreur de regexp
je recup une ligne de ce genre depuis un fichier :
T6725edd583c0a82e02214,2,1,2,toto@titi.com
cette ligne est stockée dans $ligne (telle quelle j'arrive à l'afficher)
si je fais la regexp :
$ligne_mail =~ m/^(.{22}),(\d{1,2}),\d{1,},\d{1,},(.*)/
$1 = T6725edd583c0a82e02214
$2 = 2
$3 = toto@

Comme vous pouvez voir, l'adresse mail est tronquée après le @,
et je n'arrive pas à recup toute l'adresse...

Merci par avance ;o)
Benjamin

4 réponses

Avatar
Sebastien Moretti
Ben wrote:

Salut à tous,
je n'arrive pas à comprendre une erreur de regexp
je recup une ligne de ce genre depuis un fichier :
T6725edd583c0a82e02214,2,1,2,
cette ligne est stockée dans $ligne (telle quelle j'arrive à l'afficher)
si je fais la regexp :
$ligne_mail =~ m/^(.{22}),(d{1,2}),d{1,},d{1,},(.*)/
$1 = T6725edd583c0a82e02214
$2 = 2
$3 = toto@

Essaye $ligne_mail =~ /^(.{22}),(d{1,2}),d{1,},d{1,},([]+)/


Comme vous pouvez voir, l'adresse mail est tronquée après le @,
et je n'arrive pas à recup toute l'adresse...

Merci par avance ;o)
Benjamin


--
Sebastien MORETTI
CNRS - IGS

Avatar
Patrick Texier
Le Thu, 15 Jan 2004 13:18:17 +0100, "Ben" a
écrit :

Comme vous pouvez voir, l'adresse mail est tronquée après le @,
et je n'arrive pas à recup toute l'adresse...


Votre code fonctionne, bien que j'aurais plutot utilisé split /,/

====== code ==== use strict;

my $ligne_mail = 'T6725edd583c0a82e02214,2,1,2,';
$ligne_mail =~ m/^(.{22}),(d{1,2}),d{1,},d{1,},(.*)/;
print "$1n$2n$3n";
================== --
Patrick Texier

Avatar
Ben
merci ;o)

"Sebastien Moretti" a écrit dans le
message de news: bu66mk$b29$
Ben wrote:

Salut à tous,
je n'arrive pas à comprendre une erreur de regexp
je recup une ligne de ce genre depuis un fichier :
T6725edd583c0a82e02214,2,1,2,
cette ligne est stockée dans $ligne (telle quelle j'arrive à l'afficher)
si je fais la regexp :
$ligne_mail =~ m/^(.{22}),(d{1,2}),d{1,},d{1,},(.*)/
$1 = T6725edd583c0a82e02214
$2 = 2
$3 = toto@

Essaye $ligne_mail =~ /^(.{22}),(d{1,2}),d{1,},d{1,},([]+)/


Comme vous pouvez voir, l'adresse mail est tronquée après le @,
et je n'arrive pas à recup toute l'adresse...

Merci par avance ;o)
Benjamin


--
Sebastien MORETTI
CNRS - IGS




Avatar
Ben
merci ;o)
pour info, si je n'utilise pas le split, s'est parceque j'ai besoin de
"reconnaitre" cette ligne parmis d'autres.

"Patrick Texier" a écrit dans le message de news:

Le Thu, 15 Jan 2004 13:18:17 +0100, "Ben" a

Comme vous pouvez voir, l'adresse mail est tronquée après le @,
et je n'arrive pas à recup toute l'adresse...


Votre code fonctionne, bien que j'aurais plutot utilisé split /,/

====== code ==== > use strict;

my $ligne_mail = 'T6725edd583c0a82e02214,2,1,2,';
$ligne_mail =~ m/^(.{22}),(d{1,2}),d{1,},d{1,},(.*)/;
print "$1n$2n$3n";
================== > --
Patrick Texier