我在进行访问AD中的用户时候,获得了一个字符串,如下所示:
CN=XX,OU=XXXX,OU=XXXX,OU=XXXX,.........DC=XX,DC=XX,DC=XXOU指的是组织单元名称,根据在我AD中组织单元嵌套的深度不同,OU的数量就不同(简单地说就是像"AAAA/AAA/AA/A"这样,深度有可能不同)我现在想通过这个字符串做以下操作:
1.去掉CN=XX和所有DC=XX的字符
2.去掉“,”和“=”
3.把OU=后面的xx组成一个字符串,以下划线的形式串起来请大家帮帮忙,谢谢哦~

解决方案 »

  1.   

    youstring.replace(',','')
    youstring.replace('=','')
    youstring.replace('CN=XX','')
    youstring.replace('DC=XX','')
    试试应该行的
      

  2.   

                    string str = " CN=XX,OU=XXXX,OU=XXXX,OU=XXXX,DC=XX,DC=XX,DC=XX ";
                    str=str.Replace("CN=XX", "");
                    str=str.Replace("DC=XX", "");
                    str=str.Replace (",OU=","_");
                    str = str.Replace(",", "");
                    str=str.TrimStart (' ');
                    str = str.TrimStart('_');
      

  3.   

    替换字符串方法可行,虽然还没做实验,不过先谢谢了。能不能帮小弟实现这样一个过程,不用写代码,把思路和用到的函数告诉我就行。按照我帖子上所说的,先拆开字符串,只留下OU=后面的字符,然后把其他的字符串以下划线的形式组合起来
    例如:
    这样的字符串“CN=阿陈,OU=大学,OU=51班,OU=男生,DC=WWW,DC=AWEI,DC=COM”
    转换成“大学_51班_男生”
      

  4.   


    //添加命名空间:
    using System.Text.RegularExpressions;string s = "CN=XX,OU=XXXX,OU=XXXX,OU=XXXX,DC=XX,DC=XX,DC=XX";
            //去掉CN=XX和所有DC=XX的字符 
            string result = Regex.Replace(s, @",?CN=\w+,?|,?DC=\w+,?", "", RegexOptions.IgnoreCase);
            //把OU=后面的xx组成一个字符串,以下划线的形式串起来 
            result = Regex.Replace(result, @",?OU=", @"_", RegexOptions.IgnoreCase);//结果为:_xxxx_xxxx_xxxx