Regex由一个目标字符串分割到某个字符

本文关键字:分割 字符串 字符 目标 一个 Regex | 更新日期: 2023-09-27 17:59:52

我需要一个LDAP查询来构建域。

因此,由"DC="拆分为"逗号"

输入:
LDAP://DC=SOMETHINGS,DC=ELSE,DC=NET''account

结果:
什么的。否则。NET

Regex由一个目标字符串分割到某个字符

使用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));

没有Regex,你可以做:

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"