3 回答
TA贡献1806条经验 获得超8个赞
match.Groups[0]始终与相同match.Value,这是整个匹配项。
match.Groups[1] 是正则表达式中的第一个捕获组。
考虑以下示例:
var pattern = @"\[(.*?)\](.*)";
var match = Regex.Match("ignored [john] John Johnson", pattern);
在这种情况下,
match.Value 是 "[john] John Johnson"
match.Groups[0]始终是一样的match.Value,"[john] John Johnson"。
match.Groups[1]是来自的捕获物组(.*?)。
match.Groups[2]是来自的捕获物组(.*)。
match.Groups[1].Captures 是另一个维度。
考虑另一个示例:
var pattern = @"(\[.*?\])+";
var match = Regex.Match("[john][johnny]", pattern);
请注意,我们正在连续查找一个或多个带括号的名称。您需要能够分别获得每个名称。输入Captures!
match.Groups[0]始终是一样的match.Value,"[john][johnny]"。
match.Groups[1]是来自的捕获物组(\[.*?\])+。与match.Value这种情况相同。
match.Groups[1].Captures[0] 是相同的 match.Groups[1].Value
match.Groups[1].Captures[1] 是 [john]
match.Groups[1].Captures[2] 是 [johnny]
TA贡献2012条经验 获得超12个赞
Groups[0] 是您的整个输入字符串。
Groups[1]是您的组被括号所捕获(.*?)。您可以将正则表达式配置为仅捕获显式组(创建正则表达式时有一个选项),或用于(?:.*?)创建非捕获组。
- 3 回答
- 0 关注
- 272 浏览
添加回答
举报