我继承了一个包含以下正则表达式的代码块,我试图了解它是如何得到它的结果的.
var pattern = @"\[(.*?)\]";
var matches = Regex.Matches(user, pattern);
if (matches.Count > 0 && matches[0].Groups.Count > 1)
...
Run Code Online (Sandbox Code Playgroud)
输入user == "Josh Smith [jsmith]":
matches.Count == 1
matches[0].Value == "[jsmith]"
Run Code Online (Sandbox Code Playgroud)
......我明白了.但是之后:
matches[0].Groups.Count == 2
matches[0].Groups[0].Value == "[jsmith]"
matches[0].Groups[1].Value == "jsmith" <=== how?
Run Code Online (Sandbox Code Playgroud)
看着这个问题从我了解的群体集合存储在整场比赛以及之前的比赛.但是,上面的正则表达式是否只与[空方括号] [文本] [关闭方括号]匹配,那么为什么"jsmith"会匹配?
此外,群组集合是否总是存储2组:整场比赛和最后一场比赛?