有没有办法提取匹配c#.net中正则表达式模式的唯一捕获组?我需要一个包含2个元素的列表uniqueSiteElementKeys3,SiteElements [10]和SiteElements [11]
string lineOfKeys = "SiteElements[10].TempateElementId,SiteElements[10].TemplateElementValue,SiteElements[11].TempateElementId,SiteElements[11].TemplateElementValue";
string pattern3 = @"(?<SiteElements>^\b(SiteElements\[[0-9]+\]))";
List<string> uniqueSiteElementKeys3 = new List<string>();
foreach (Match match in Regex.Matches(lineOfKeys, pattern3))
{
if (uniqueSiteElementKeys3.Contains(match.Groups[1].Value) == false)
{
uniqueSiteElementKeys3.Add(match.Groups[1].Value);
}
}
答案 0 :(得分:0)
只需使用普通的旧LINQ:
var uniqueSiteElementKeys3 = Regex.Matches(lineOfKeys, @"\bSiteElements\[[0-9]+\]")
.Cast<Match>()
.Select(match => match.Value)
.Distinct()
.ToList();