繁体   English   中英

正则表达式由目标字符串分割到某个字符

[英]Regex to split by a Targeted String up to a certain character

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

因此,将“DC =”拆分为“逗号”

INPUT:
LDAP:// DC =出头,DC = ELSE,DC = NET \\帐户

结果:
SOMETHING.ELSE.NET

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

没有正则表达式,您可以:

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"

暂无
暂无

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

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