2009-10-29 5 views
4

je l'Regexp suivante:Regexp: comment obtenir chaque groupe de MatchData?

regexp=/(\w+) \s* : \s* (\w+) \s+ (.*) \s* ;?/ix 

Et je suis en train d'obtenir les captures:

names, direction, type = iotext.match(regexp).captures 

Cela fonctionne très bien pour un "x: en entier;" ,

mais comment pourrais-je obtenir aussi tous les groupes d'autres données de match dans mon dossier:

"x : in integer; 
y : in logic; 
z : in float;" 

Répondre

3

Votre regex regexp est ok, juste correspond à une seule occurence. Si vous voulez faire correspondre tous les occurance essayer

"x : in integer; y : in logic; z : in float;".scan(regexp) 

qui se traduit par un tableau avec 3 éléments contenant un tableau de chaque 3 matchs, à savoir

[ ["x", "in", "integer"], ["y", "in", "logic"], ["z", "in", "float"] ] 
+0

si simple. Merci beaucoup. – JCLL

Questions connexes