繁体   English   中英

使用Regex提取值 - C#

[英]Extracting values using Regex - C#

我对正则表达式并不熟悉。 我有一个字符串,我需要使用正则表达式提取特定值。 这是字符串

CN=ReportingGroup {b4f3d644-9361-461e-b604-709fa31f2b9e},OU=DOM USERS,DC=domain,DC=com

我想得到CN和OU的值,即“ReportingGroup {b4f3d644-9361-461e-b604-709fa31f2b9e}”和“DOM USERS”

从上面的字符串。 我如何为此构建正则表达式模式?

您不需要RegEx。

如果使用分割字符串,然后使用=分隔每个结果字符串,则可以查看键以提取CNOU键的值。

string cn;
string ou;
foreach(string adPortion in myString.Split(new Char [] {','}))
{
   string[] kvp = adPortion.Split(new Char [] {'='})

   if(kvp[0] == "CN")
      cn = kvp[1];

   if(kvp[0] == "OU")
      ou = kvp[1];
}

这假设CNOU仅在字符串中出现一次。

请执行下列操作:

new Regex("CN=(?<CN>[^,]*),OU=(?<OU>[^,]*)").Match(str).Groups["CN"].Value;

看起来你的字符串结构很好。 考虑使用常规字符串函数,如IndexOf()Substring() 正则表达式更难阅读和理解。

如果您绝对想要使用Regex,以下代码将迭代所有KEY = VALUE对:

        foreach (Match m in
            Regex.Matches(inputString, @"[,]*([^=]+)=([^,]*)"))
        {
            string key = m.Groups[1].Value;
            string value = m.Groups[2].Value;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM