仅显示捕获的组

时间:2012-08-27 21:07:41

标签: c# regex winforms

我正在尝试显示捕获的正则表达式组(由()包围的那些组,但无论我尝试过什么,它都会显示捕获的和正在匹配的组。

我正在寻找的是一种只显示捕获组的解决方案。

这是一个示例代码,显示如上所述的两个组:

RegexOptions ignoreSpace = checkEditIgnoreSpaces.Checked ? RegexOptions.IgnorePatternWhitespace : RegexOptions.None;
RegexOptions ignorecase = checkEditIgnoreCase.Checked ? RegexOptions.IgnoreCase : RegexOptions.None;
RegexOptions multiline = checkEditMultiline.Checked ? RegexOptions.Multiline : RegexOptions.Singleline;
RegexOptions ignoreUnnamedGroups = checkEditCaptureUnnamedGroups.Checked ? RegexOptions.None : RegexOptions.ExplicitCapture;

MatchCollection mc = Regex.Matches(myRichTextBox1.Text, pattern, ignorecase | ignoreSpace | multiline | ignoreUnnamedGroups);

if (mc.Count > 0)
{
    foreach (Match match in mc)
    {
        Console.WriteLine(match.Value);
    }
}

我希望匹配.Captures只包含捕获的组,但事实并非如此。

1 个答案:

答案 0 :(得分:1)

试试这个

match.Groups[1].Value;

Source