Regex由一个目标字符串分割到某个字符
本文关键字:分割 字符串 字符 目标 一个 Regex | 更新日期: 2023-09-27 17:59:52
我需要一个LDAP查询来构建域。
因此,由"DC="拆分为"逗号"
输入:
LDAP://DC=SOMETHINGS,DC=ELSE,DC=NET''account
结果:
什么的。否则。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));
没有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"