我有一个LDAP查询,我需要构建域。
因此,将“DC =”拆分为“逗号”
INPUT:
LDAP:// DC =出头,DC = ELSE,DC = NET \帐户
结果:
SOMETHING.ELSE.NET
答案 0 :(得分:2)
使用DC=(\w*)
正则表达式模式可以非常简单。
var str = @"LDAP://DC=SOMETHINGS,DC=ELSE,DC=NET\account";
var result = String.Join(".", Regex.Matches(str, @"DC=(\w*)")
.Cast<Match>()
.Select(m => m.Groups[1].Value));
答案 1 :(得分:1)
如果没有正则表达式,你可以这样做:
string ldapStr = @"LDAP://DC=SOMETHINGS,DC=ELSE,DC=NET\account";
int startIndex = ldapStr.IndexOf("DC=");
int length = ldapStr.LastIndexOf("DC=") - startIndex;
string output = null;
if (startIndex >= 0 && length <= ldapStr.Length)
{
string domainComponentStr = ldapStr.Substring(startIndex, length);
output = String.Join(".",domainComponentStr.Split(new[] {"DC=", ","}, StringSplitOptions.RemoveEmptyEntries));
}
如果您总是以类似的格式获取字符串,那么:
string ldapStr = @"LDAP://DC=SOMETHINGS,DC=ELSE,DC=NET\account";
var outputStr = String.Join(".", ldapStr.Split(new[] {"DC=", ",","\\"}, StringSplitOptions.RemoveEmptyEntries)
.Skip(1)
.Take(3));
你会得到:
outputStr = "SOMETHINGS.ELSE.NET"