Je n'ai pas été en mesure de trouver quelque chose en ligne à ce sujet. Il y a RegexOptions, mais Global n'a pas l'une de ses options. La liste des modificateurs en ligne ne mentionne pas non plus de correspondance globale..NET Regex prend-il en charge la correspondance globale?
En un mot, j'ai un regex pour analyser quelque chose comme
--arga= "arg1" --argb ="arg2"
en paires nom d'argument distinct/valeur en utilisant cette expression rationnelle:
--(\\w+)\\s*=\\s*\"(\\w+)\"\\s*
mais la classe .NET Regex doesn ne le faites pas globalement (itérativement). Donc, pour que cela fonctionne, je devrais faire une correspondance, puis retirer ceci de la chaîne d'arguments, et faire une boucle encore et encore jusqu'à ce que j'aie épuisé tous les arguments.
Il serait plus agréable d'exécuter une fois l'expression régulière, puis de faire une boucle sur les groupes de correspondance pour obtenir les paires de valeurs de nom. Est-ce possible? Qu'est-ce que je rate?
euh ... merci! J'ai complètement manqué ça. Je vais tenter le coup maintenant. – Dave
pouvez-vous recommander le moyen le plus propre d'obtenir les paires de valeur de nom? Quand j'utilise Matches, il retourne deux groupes: '--arga =" arg1 "' et '--argb =" arg2 "', mais j'espérais que ceux-ci, ** plus ** 'arga',' arg1', 'argb', et' arg2'. – Dave
Vérifiez la propriété 'Groups [1]' de chaque objet 'Match'. – SLaks