Bonjour à toutes et tous,

Je suis nouveau ici, je viens vous demander votre aide pour créer un regex.

Je reçois une trame du style : 1234564798012345,10,250719,103018,47.211467,-0.060360,35.20,1,1.75,0,0,3531,27,0,0,108,53,10,10
Je souhaiterais récupérer ce qu'il y a dans le champ 5, c'est à dire "47.211467" et dans le champ 6 : "-0.060360" uniquement si ce sont des valeurs de type "float" ou bien dans le cas où le champ est vide.

Cependant je ne sais pas comment dire que je veux récupérer dans le champ 5 (donc après la 4ème virgule) et pareil pour le champ 6, je ne sais pas non plus comment vérifier le type (je pensais vérifier qu'il y a bien un "." présent cela confirmerait bien que c'est un "float"), mais il faut aussi que je vérifie si ce n'est pas vide (donc 2 virgules à cet endroit et pas à un autre).

N'hésitez pas à me dire si vous n'avez pas compris ou autre.

Merci d'avance.
Cordialement.
Zapsalis

2 réponses


gillesr
Réponse acceptée

Bonjour,

Tu peux simplement utiliser explode pour récupérer tout ça dans un tableau. Tu verras tout de suite les cases vides.
ça te permettras aussi d'utiliser is_float() qui renvoie true si ta valeur est un nombre décimal.

Zapsalis
Auteur

Bonjour,

Merci pour votre réponse.

Cependant j'ai enfaite plusieurs trames différentes, en fonction du type de mon produit (une trame par type de produit), je cherche donc à avoir un regex par type de produit, cela me permettra, lors de la récéption de ma trame, de passer les regex un a un afin de trouver quel est le type de produit qui m'a envoyé cette trame.

De plus, les regex m'ont été imposé dans mon projet, car il y aura des types rajouté au fur et à mesure dans la vie de mon projet, et donc rajouter un regex de reconnaissance sera plus simple.

Merci.