using System;
using System.Text.RegularExpressions;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
Regex reg = new Regex(@"(?<n1>pattern_n1_1) (?<n2>pattern_n2_1) (?<n1>pattern_n1_2) (?<n2>pattern_n1_2)", RegexOptions.IgnoreCase);
String str = "pattern_n1_1 pattern_n2_1 pattern_n1_2 pattern_n1_2";
List<String> matchedText = new List<string>();
List<String> string_n1 = new List<string>();
List<String> string_n2 = new List<string>();
MatchCollection mc = reg.Matches(str);
if (mc != null)
{
foreach (Match m in mc)
{
matchedText.Add(m.Value.Trim());
foreach (Capture c in m.Groups["n1"].Captures)
string_n1.Add(c.Value);
foreach (Capture c in m.Groups["n2"].Captures)
string_n2.Add(c.Value);
}
}
Console.WriteLine(String.Join(", ", matchedText.ToArray()));
Console.WriteLine(String.Join(", ", string_n1.ToArray()));
Console.WriteLine(String.Join(", ", string_n2.ToArray()));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCVJlZ2V4IHJlZyA9IG5ldyBSZWdleChAIig/PG4xPnBhdHRlcm5fbjFfMSkgKD88bjI+cGF0dGVybl9uMl8xKSAoPzxuMT5wYXR0ZXJuX24xXzIpICg/PG4yPnBhdHRlcm5fbjFfMikiLCBSZWdleE9wdGlvbnMuSWdub3JlQ2FzZSk7CgoJCVN0cmluZyBzdHIgPSAicGF0dGVybl9uMV8xIHBhdHRlcm5fbjJfMSBwYXR0ZXJuX24xXzIgcGF0dGVybl9uMV8yIjsKCQkKCQlMaXN0PFN0cmluZz4gbWF0Y2hlZFRleHQgPSBuZXcgTGlzdDxzdHJpbmc+KCk7CgkJTGlzdDxTdHJpbmc+IHN0cmluZ19uMSA9IG5ldyBMaXN0PHN0cmluZz4oKTsKCQlMaXN0PFN0cmluZz4gc3RyaW5nX24yID0gbmV3IExpc3Q8c3RyaW5nPigpOwoJCQoJCU1hdGNoQ29sbGVjdGlvbiBtYyA9IHJlZy5NYXRjaGVzKHN0cik7CgkJaWYgKG1jICE9IG51bGwpCgkJewoJCSAgICBmb3JlYWNoIChNYXRjaCBtIGluIG1jKQoJCSAgICB7CgkJICAgIAltYXRjaGVkVGV4dC5BZGQobS5WYWx1ZS5UcmltKCkpOwoJCSAgICAJCgkJICAgIAlmb3JlYWNoIChDYXB0dXJlIGMgaW4gbS5Hcm91cHNbIm4xIl0uQ2FwdHVyZXMpCgkJICAgICAgICAJc3RyaW5nX24xLkFkZChjLlZhbHVlKTsKCQkgICAgICAgIAkKCQkgICAgICAgIGZvcmVhY2ggKENhcHR1cmUgYyBpbiBtLkdyb3Vwc1sibjIiXS5DYXB0dXJlcykKCQkgICAgICAgIAlzdHJpbmdfbjIuQWRkKGMuVmFsdWUpOwoJCSAgICB9CgkJfQoJCQoJCUNvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Kb2luKCIsICIsIG1hdGNoZWRUZXh0LlRvQXJyYXkoKSkpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Kb2luKCIsICIsIHN0cmluZ19uMS5Ub0FycmF5KCkpKTsKCQlDb25zb2xlLldyaXRlTGluZShTdHJpbmcuSm9pbigiLCAiLCBzdHJpbmdfbjIuVG9BcnJheSgpKSk7Cgl9Cn0=