我有这个正则表达式来捕获类型名称-首先是类型名称,然后是通用参数列表,最后是程序集名称:
(.*?)\[\[(.*?)\]\], (.*)
当我针对这样的字符串(类型的完全限定名称的简化版本)运行它时:
System.Collections.Generic.List`1[[FrEee.Modding.Formula`1[[System.String, mscorlib]], FrEee.Core]], mscorlib
在整个字符串上我只有一个匹配项:
为什么我定义的三个捕获组与字符串的各个部分都不匹配?
答案 0 :(得分:1)
我正在使用以下代码访问捕获内容:
match.Captures[1].Value
我应该使用的时间:
match.Groups[1].Captures[0].Value
答案 1 :(得分:1)
另外,您似乎应该make the parameter wildcard greedy,以免它跳到内括号上:
(?<type>.*?)\[\[(?<parameters>.*)\]\], (?<assembly>.*)