URL: https://linuxfr.org/forums/programmationautre/posts/captures-dans-une-regexp Title: Captures dans une regexp Authors: Ontologia Date: 2006年05月31日T12:33:45+02:00 Tags: Score: 0 Bonjour, j'ai encore un problème de capture dans une expression rationelle. Je bute souvent dessus et ne trouve pas de doc clair sur le sujet J'utilise [http://www.weitz.de/regex-coach/](http://www.weitz.de/regex-coach/) pour tester mes regexp. Ce programme n'est pas libre, mais il me convient très bien. Il est compatible regexp perl et pour avoir conçu avec des regexp assez tordues, je suis sûr qu'il est vraiment compatible. Mon problème : J'ai diverses phrases du genre MINORE (NOMINAL) ou VOIR TABLE TRUC (OPT) ou TRANSF EN PAR TRUC TOTO TITI TUTU Bref, j'ai en gros : pour param := <\w> Mot := \w ((Mot*\s*)*param*)* J'ai conçu la regexp suivante qui semble matcher pour tous les cas que je lui ai donné à manger. [\(\)\w\s]*<*(\w+)>*([\(\w\s]*(<*\w+>*))*[\w\)] Le problème, c'est les captures... Très souvent, avec des constructions de ce style qui s'approchent d'une grammaire BNF (et j'ai pas d'outil sous la main pour les traiter avec le langage* que je suis obligé d'utiliser), je bute sur ces captures. Logiquement, pour ma petite tête, si j'utilise une regexp du style ((Mot*\s*)*(param)*)* et que j'ai TRANSF EN PAR TRUC TOTO TITI TUTU Je devrai avoir capture n°1 : TRANSF EN capture n°2 : capture n°3 : PAR TRUC capture n°4 : capture n°5 :TOTO TITI TUTU capture n°6 : Alors même ça c'est un compromis, car dans l'idéal, je voudrai bien avoir une regexp dont les captures ne sont que les paramètres entre cochets... Comme vous l'aurez constaté, je suis un peu perdu. Quelqu'un dans la salle a t-il une idée ? *Je suis en windev (oui je sais c'est *sale*, mais j'ai pas le choix) dans ce cas précis et je ne possède qu'une et une seule fonction qui me permet de tester une regexp et de récup les n captures.