OVH Cloud OVH Cloud

split sur une valeur en hexadecimal

3 réponses
Avatar
cyrille
bonjour,

c'est encore un problème de regEx, désolé ;o{

j'ais une valeur héxa : 8d09c566
et je voudrais récupérer les éléments 2 par deux :
8d, 09, c5, 66

alors j'essaye avec split :

my( $b1, $b2, $b3, $b4 ) = split( /(.{2})/, $iphex );

mais j'obtiens
$b1 =
$b2 = 8d
$b3 =
$b4 = 09

je ne comprends pas pourquoi une variable sur deux est vide.
quelle est mon erreur ???

merci
cyrille

3 réponses

Avatar
Rue des Prairies
cyrille wrote:
bonjour,

c'est encore un problème de regEx, désolé ;o{

j'ais une valeur héxa : 8d09c566
et je voudrais récupérer les éléments 2 par deux :
8d, 09, c5, 66

alors j'essaye avec split :

my( $b1, $b2, $b3, $b4 ) = split( /(.{2})/, $iphex );

mais j'obtiens
$b1 > $b2 = 8d
$b3 > $b4 = 09

je ne comprends pas pourquoi une variable sur deux est vide.
quelle est mon erreur ???

merci
cyrille

Bonsoir,


($b1, $b2, $b3, $b4) = ($iphex =~ /../g);

Olivier.

Avatar
cyrille

my( $b1, $b2, $b3, $b4 ) = split( /(.{2})/, $iphex );



($b1, $b2, $b3, $b4) = ($iphex =~ /../g);



merci beaucoup olivier.

n'aurais tu pas la version avec quantifier s'il te plait ?

cyrille


Avatar
Rue des Prairies
cyrille wrote:

my( $b1, $b2, $b3, $b4 ) = split( /(.{2})/, $iphex );



($b1, $b2, $b3, $b4) = ($iphex =~ /../g);



merci beaucoup olivier.

n'aurais tu pas la version avec quantifier s'il te plait ?

cyrille

Bonjour,


Tu peux faire :

($b1, $b2, $b3, $b4) = ($iphex =~ /[0-9a-fA-F]{2}/g);

qui matche 2 caractères hexa.

Olivier.