我有一个字符串 例如。如何获得字符串的一部分
string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
了,我想我的临时串具有值
tempString = "DC=CopTest,DC=copiun2,DC=com"
我需要从字符串中删除OU
值对所有出现。这些总是首先出现在字符串中。
我有一个字符串 例如。如何获得字符串的一部分
string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
了,我想我的临时串具有值
tempString = "DC=CopTest,DC=copiun2,DC=com"
我需要从字符串中删除OU
值对所有出现。这些总是首先出现在字符串中。
那么,这取决于你想要它的理由。如果你想第一个逗号后的一切,你可以使用:
int comma = a.IndexOf(',');
if (comma != -1)
{
string tempString = a.Substring(comma + 1);
// Use tempString
}
else
{
// Deal with there not being any commas
}
如果这不是你想怎么分割字符串,请给你需要做的更多的信息。
编辑:如果您需要“的第一个逗号后面DC =”你可以在第一行更改为:
int comma = a.IndexOf(",DC=");
同样,如果你需要别的东西,请多更具体的了解什么你正在努力。
也可以有其他OU ..这只是一个例子,它可以是OU = SupportSubLevel3,OU = SupportLevel1,DC = CopTest,DC = copiun2,DC = com – user175084 2011-04-30 19:22:31
@ user175084:那么,什么决定了你想要开始的地方拿字符串? – 2011-04-30 19:27:30
您需要为此使用Substring函数,但是如何使用它取决于您的标准。例如,你可能只是这样做:
tempString = a.Substring(12);
如果你可以让我们知道你是标准的会非常有用
或者@Jon Skeet在第一个逗号的索引处完成了你的子字符串:) – 2011-04-30 19:22:06
假设OU
总是值对的其余部分之前,这将让你所有的字符串继上次OU
值:
string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
string res = a.Substring(a.IndexOf(',', a.LastIndexOf("OU=")) + 1);
// res = "DC=CopTest,DC=copiun2,DC=com"
你可以使用LINQ的帮助:
string foo = "OU=SupportSubLevel3,OU=SupportLevel1,DC=CopTest,DC=copiun2,DC=com";
string sub = string.Join(",",
foo.Split(',')
.Where(x => x.StartsWith("DC")));
Console.WriteLine(sub);
+1顺便说一句'Split(',')'就足够了。 – 2011-04-30 19:29:54
'string.Split()'至少工作[自.NET 1.1](http://msdn.microsoft.com/en-us/library/aa904305%28v=VS.71%29.aspx)。 – svick 2011-05-01 00:54:24
我怀疑你真正需要的这里是所有的域组件。你甚至可能想分割它们。这个例子将支持任何DN语法,并从中提取了DC的:
string a = "OU=QALevel1,DC=CopTest,DC=copiun2,DC=com";
// Separate to parts
string[] parts = a.Split(',');
// Select the relevant parts
IEnumerable<string> dcs = parts.Where(part => part.StartsWith("DC="));
// Join them again
string result = string.Join(",", dcs);
注意,你同时获得dcs
- 所有的DC部分的枚举,并result
- 您所要求的字符串。但最重要的是,这个代码有意义 - 当你看到它时,你确切知道它会做什么 - 返回一个字符串,其中包含原始字符串的所有DC=*
部分的列表,删除所有非DC部分。
你用什么规则来确定你想要的字符串的哪一部分? – Oded 2011-04-30 19:18:41
你只是想要所有以'DC'开头的值?你确定你想要输出为字符串吗?如果你想进一步解析它,这对于这个任务是有意义的,并且一步完成进一步的解析。 – svick 2011-04-30 19:21:01
也可以有其他的OU ..这只是一个例子,它可以是OU = SupportSubLevel3,OU = SupportLevel1,DC = CopTest,DC = copiun2,DC = com – user175084 2011-04-30 19:22:53