Bonjour,
J'essaye d'utiliser les expressions rationnelles mais pour le moment je suis en plein bourbier.
Mon expression ressemble à cela :
Pattern 1 :
^(BA_DEF_\s*BO_)\s*\x22([\w_é]+)\x22\s*([\w_]+)\s*(\x22(.)*?\x22\s*\,*)*\s*(\d+)*\s*(\d+)*\s*;
Pattern 2 : (Le 2nd pattern me sert a diviser les modes récupérer dans le premier pattern.)
Je veux en effet pouvoir récupérer les informations de ces chaines :
BA_DEF_ BO_ "GenMsgSendType" ENUM "Cyclic","not_used","not_used","not_used","not_used","Cyclic","not_used","IfActive","NoMsgSendType";
BA_DEF_ BO_ "GenMsgCycleTime" INT 0 0;
BA_DEF_ BO_ "ModeTransmission" ENUM "P","E","P+E";
BA_DEF_ BO_ "Période" INT 0 0;
Mais je n'y arrive pas, le problème vient de l'étoile après ma capture des modes qui sont compris entre "","",...
En effet si je l'enlève ça fonctionne mais du coup pour la capture de chiffre ça ne fonctionne pas...
Avez vous une solution ?
J'ai peut être trouvé une alternative, mais je pense pas que c'est très propre :
^(BA_DEF_\s*BO_)\s*\x22([\w_é]+)\x22\s*([\w_]+)\s*((\x22(.*?)\x22\s*\,*)*)\s*(\d+)*\s*(\d+)*\s*;
Vous en pensez quoi ?
Merci beaucoup !
Partager