[perl] 1 regexp des espaces ... et rien

Fermé
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 - 8 févr. 2010 à 15:26
fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 - 8 févr. 2010 à 16:12
Bonjour,

je vous met d'abord le code ^^ :

@cobol = "-----------------------------------------------------------------------------
2000/02/08 14:02:51
   Installed   Sys   In Use
   ---------   ---   ------
/bob/v4/raoul
      250        0       0             Server 32-bit

**AS Developer Usage
       15        0       4             Server 32-bit

**AS Developer Usage
       15        0       1             Server 32-bit
";

push(@cobol,$_);
for(@cobol){
	$result = $_;
	$result =~ /(\d*\/\d*\/\d*)/;
	print "$1\n";
	
	
	
	$result =~ /^\s*(\d*)\s*(\d*)\s*(\d*)/;
	print "1 : $1\n";
	print "2 : $2\n";
	print "3 : $3\n";
	
}


Donc :
@Cobol contient le texte à traiter.
Je souhaiterai extraire "250" "0" "0" et "15" "0" "4" et "15" "0" "1".

J'ai beau faire ^\s*, j'ai l'impression que perl ne comprend pas (je pense surtout que je m'y prend mal).
J'ai aussi copié le caractère "espace" et collé dans un convertisseur ASCII pour vérifier que le code ascii était bien espace... Enfin bref, je suis vraiment coincé, un œil extérieur serait d'une grande aide.

Cordialement.
Fxta

1 réponse

fxtaa Messages postés 1050 Date d'inscription mardi 20 octobre 2009 Statut Membre Dernière intervention 2 avril 2015 74
8 févr. 2010 à 16:12
Bon j'avance petit a petit :

push(@cobol,$_);
for(@cobol){
	$result = $_;

	if ($result =~ /\n\s+(\d+)\s+(\d+)\s+(\d+)/){
		print "im in!\n";
		# print $result;
		print "1 : $1\n";
		print "2 : $2\n";
		print "3 : $3\n";
	}
}


J'arrive à extraire 250 0 0 mais bizarrement perl ne fait pas la regexp pour 15 0 4 et 15 0 1(sauf si je supprime la ligne 250 0 0.....
0