Je suis en train d'analyser les lignes de la forme:Difficulté avec un simple regex pour obj fichiers
command arg1[ arg2, ... argn]
tels que:
usemtl weasels
ou
f 1/2/3 4/5/6 7/8/9
Voici mon regex:
^(\\w+)((\\S+)+)$
Quand je parse la ligne « usemtl belettes », je reçois les groupes de capture suivants:
Match 0: 'usemtl weasels'
Match 1: 'usemtl'
Match 2: ' weasels'
Pourquoi l'espace avant le deuxième groupe de match? Il n'apparaît pas dans Rubular.
Hm. De mon point de vue, * "le dernier match du nième groupe déclaré" * est la seule chose logique. Quel moteur regex vous donne le nième match trouvé? Cela n'a aucun sens du tout. – Tomalak
OK, peut-être que c'était seulement moi qui était confus à ce sujet, parce que je m'attendais à pouvoir référencer tous les matchs même si un groupe correspondait plusieurs fois. – tangens
En suivant votre logique, cela voudrait-il dire que dans '(a) * (b)' le 'b' serait représenté par des nombres différents selon la fréquence de' a' correspondante? Ce n'est pas juste. ;-) Le framework .NET [supporte 'CaptureCollection'] (http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.capturecollection (v = VS.90 \) .aspx) qui permet vous faites ce genre de chose. Cependant, c'est une fonctionnalité plutôt inhabituelle avec les moteurs regex. – Tomalak