首页 > 解决方案 > C# 正则表达式仅捕获整个表达式而不是单个捕获组

问题描述

我有这个正则表达式来捕获类型名称 - 首先是类型名称,然后是泛型参数列表,最后是程序集名称:

(.*?)\[\[(.*?)\]\], (.*)

当我对这样的字符串(类型的完全限定名称的简化版本)运行它时:

System.Collections.Generic.List`1[[FrEee.Modding.Formula`1[[System.String, mscorlib]], FrEee.Core]], mscorlib

我在整个字符串上只得到一个匹配:

关联

为什么我定义的三个捕获组与字符串的各个部分不匹配?

标签: c#.netregex

解决方案


我正在使用此代码来访问捕获:

match.Captures[1].Value

当我应该使用时:

match.Groups[1].Captures[0].Value

推荐阅读