Bonjour à tous,
Je viens vers vous aujourd'hui suite à un souci que je rencontre actuellement concernant la mise en place d'une expression régulière dans une application. Le but de cette application est de faire transiter par trames réseaux des messages simples encodés d'une manière simple à ce que ce dernier puisse être décrypté. Pour information, j'ai regardé du côté de la sérialisation de structure en C cependant ceci semble requérir une/des librairies supplémentaires ce que je ne veux pas imposer à l'utilisateur.
Par exemple, l'un des messages que j'envoie ressemble à ceci :
Où salon, joueur, action et x sont des éléments qui correspondent à une structure que j'ai nommée "Message" et qui porte ces différents attributs. Une regex PECL pour cette chaîne serait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part salon=1;joueur=5;action=2;x=7
cependant j'ai eu le bonheur d'apprendre qu'en C, la norme des expressions régulières était POSIX. J'ai donc tenté tout naturellement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part (([a-z]+)=([0-9]+);*)+
Cependant pour le message ci-dessus, aucune correspondance n'est trouvée. Si par contre j'hôte le dernier quantificateur et les parenthèses comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ([[:alpha:]][=][[:digit:]];*)+
alors des patterns sont trouvés. Je ne comprends pas pourquoi les parenthèses rendent l'ensemble non fonctionnel alors que ces dernières ont bien pour usage de définir des "groupes" auxquels il est possible d'affecter des quantificateurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part [[:alpha:]][=][[:digit:]];*
Auriez-vous des pistes ? Si non, auriez-vous des suggestions plus intéressantes concernant le transfert des données depuis une structure ?
Merci encore pour votre réponse, en vous souhaitant une bonne et agréable journée
Cr3a_Hal0
Partager