首页 > 解决方案 > 我很难对这些数据进行正则表达式以提取名称

问题描述

CN=Cal Sith/O=SEL,CN=Scot Shaf/O=SEL

字符串看起来像上面这样,我正在尝试提取名称(Cal Sith;Scot Shaf)并且可能有超过 2 组逗号分隔。

这与我得到的一样接近但错误:

((?:[A-ZA-Z=]+[^a-zA-Z'-]+){0,12})\/O=SEL

最终,我希望他们在一个

 List<String> FullNames

标签: c#regex

解决方案


为了从以下字符串中获取名称:CN=Cal Sith/O=SEL,CN=Scot Shaf/O=SEL

试试下面的片段:

        string sPattern = @"(?:[a-z=]+)=(?<Name>[a-z\s]+)\/O=SEL";
        Regex oRegex = new Regex(sPattern,RegexOptions.IgnoreCase);
        string sInput = "CN=Cal Sith/O=SEL,CN=Scot Shaf/O=SEL";
        List<string> FullNames = new List<string>();
        foreach (Match oData in oRegex.Matches(sInput))
        {
            FullNames.Add(Convert.ToString(oData.Groups["Name"]));
        }

推荐阅读