2010-02-24 46 views
4

我试图迭代正则表达式中的每个命名组(即 - (?<name>.*)),并根据组的名称设置实例属性或将其添加到集合中。重要的部分是我使用正则表达式时永远不会知道组的名称,所以我无法在Match上使用字符串索引器。有没有办法在我的Match中为我的组提取名称?迭代正则表达式命名组

+0

可能效率不高,但你可以写一个正则表达式来解析你的正则表达式,并提取命名捕获组的形式,然后可以重复使用列表... – gehsekky 2010-02-24 23:12:34

+0

@marduk“( *?)”:本尼做使用命名组语法,但没有显示出来,因为他没有使用反引号来编码格式化正则表达式。 – 2010-02-25 01:08:43

回答

4

您可以使用Regex.GroupNameFromNumber遍历正则表达式中的所有捕获组并找到它们的名称。

+1

http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.groupnamefromnumber.aspx – 2010-02-24 23:24:00

+0

完美!谢谢! – Benny 2010-02-25 19:04:51