相关疑难解决方法(0)

C#中的正则表达式组

我继承了一个包含以下正则表达式的代码块,我试图了解它是如何得到它的结果的.

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组:整场比赛和最后一场比赛?

c# regex

46
推荐指数
2
解决办法
5万
查看次数

标签 统计

c# ×1

regex ×1