C# 子字符串第一位置全局ID值
我有字符串,需要返回第一个globalid值-8679926309027194610 我的字符串:C# 子字符串第一位置全局ID值,c#,substring,C#,Substring,我有字符串,需要返回第一个globalid值-8679926309027194610 我的字符串: string erservice = "globalid=8679926300927194610,ou=services,globalid=00000000000000000000" 我使用了子字符串: string result = erservice.Substring(9, 19); 如何使用另一种方法求解?我可能会更像这样理解它。基本上,找到globalid=键,将子字符串设置为其值
string erservice = "globalid=8679926300927194610,ou=services,globalid=00000000000000000000"
我使用了子字符串:
string result = erservice.Substring(9, 19);
如何使用另一种方法求解?我可能会更像这样理解它。基本上,找到
globalid=
键,将子字符串设置为其值,然后删除逗号后面的任何内容。当然,如果您不处理改变位置或长度的参数,您的方式会更干净
const string globalIdName = "globalid=";
string erservice = ...;
var startIndex = erservice.IndexOf(globalIdName);
if (startIndex> -1)
{
var ret = erservice.SubString(startIndex + globalIdName.Length);
var comma = ret.IndexOf(',');
if(comma > -1)
{
ret = ret.Remove(comma);
}
return ret;
}
else
{
throw new ArgumentException();
}
试试看
使用正则表达式怎么样
string erservice = "globalid=8679926300927194610,ou=services,globalid=00000000000000000000";
var globalid = Regex.Match(erservice, @"globalid=(\d+)").Groups[1].Value;
这取决于你需要获得什么样的信息 以下是一些可能对您有用的技巧
string erservice = "globalid=8679926300927194610,ou=services,globalid=00000000000000000000";
int lastIndex = 0;
int index;
while ((index = erservice.IndexOf("globalid", lastIndex)) >= 0)
{
// Contains everything including and after each globalid=
string part = erservice.Substring(index);
lastIndex = index + 1;
// do work
}
foreach (string section in erservice.Split(','))
{
// Gets each key/value pair
string[] parts = section.Split('=');
string key = parts[0];
string value = parts[1];
// do work
}
你认为你的解决方案有问题吗?globalid号的长度会改变吗?试试:
string str=erservice.Split(',').First().Split('=').Last()代码>@Habib,谢谢。我希望你能回答
string erservice = "globalid=8679926300927194610,ou=services,globalid=00000000000000000000";
int lastIndex = 0;
int index;
while ((index = erservice.IndexOf("globalid", lastIndex)) >= 0)
{
// Contains everything including and after each globalid=
string part = erservice.Substring(index);
lastIndex = index + 1;
// do work
}
foreach (string section in erservice.Split(','))
{
// Gets each key/value pair
string[] parts = section.Split('=');
string key = parts[0];
string value = parts[1];
// do work
}