我有一个登录用户名作为字符串,我想从该用户名中删除一个子字符串。例如username= "ABC/Domain-name\Pinto"
因此,在这种情况下,我只想要ABC/Pinto
或仅"Pinto"
作为输出。请帮助我。
这是我目前的代码。
var removeDomainName= userName.Substring(userName.IndexOf('/') + 1);
答案 0 :(得分:4)
我建议你尝试使用正则表达式。一旦熟悉它,字符串操作将是一个更容易的任务。
string input = @"ABC/Domain-name\Pinto";
string regex = @"(\/){1}(\w.*)(\\){1}";
var result = Regex.Replace(input, regex, "/");
在此处试试:http://regexr.com/3e8l0
根据@ grek40评论简化REGEX
string input = @"ABC/Domain-name\Pinto";
string regex = @"(\/.*\\)";
var result = Regex.Replace(input, regex, "/");
答案 1 :(得分:0)
简单示例
string userName = @"ABC/Domain-name\Pinto";
string[] arrCompany = userName.Split('/');
Console.WriteLine(arrCompany[0] +"/"+ arrCompany[1].Split('\\')[1]);
Console.ReadLine();
答案 2 :(得分:0)
尝试这样的事情。
\
另一种方法是将所有/
替换为string userName = @"ABC/Domain-name\Pinto";
string edit = userName.Replace('\\', '/');
string[] split = edit.Split(new Char[] {'/'});
string final = split[0] + "/" + split[2];
Console.WriteLine(final);
,以便更容易拆分。然后,根据您的需要将它们组合起来。
string[] split = edit.Split(new Char[] {'/'});
如果您想保留反斜杠,可以替换
string[] split = Regex.Split(edit, @"(?<=[/])");
与
button
答案 3 :(得分:0)
您可以拆分这三个部分:
var splitted = userName.Split(new char[] {'\\', '/'});
split[0]
将是您的前缀(ABC
),split[1]
将是您的域名(Domain-name
),split[2]
将是您的用户名({{ 1}})
我做了一个小提琴:https://dotnetfiddle.net/zvbwZi
或者,您可以将其子串:
获取前缀和用户名(例如Pinto
):
ABC\Pinto
然后只获取用户名(例如var prefix = userName.Substring(0, userName.IndexOf('/'));
var user = userName.Substring(userName.LastIndexOf('\\'));
var prefixAndUser = prefix + user;
):
Pinto
或者如果你想要正斜杠(var userNameWithoutPrefixOrDomain = user.Substring(1);
):
ABC/Pinto
在这种情况下,var prefix = userName.Substring(0, userName.IndexOf('/')+1);
var user = userName.Substring(userName.LastIndexOf('\\')+1);
已经是您的用户名
我也做了一个小提琴:https://dotnetfiddle.net/7YL0m5
答案 4 :(得分:0)
private string ParseString(string inString)
{
string prefix = "";
string suffix = "";
string[] splitStringArray;
splitStringArray = inString.Split('/');
prefix = splitStringArray[0];
if (prefix != "ABC")
{
prefix = "";
}
splitStringArray = inString.Split('\\');
suffix = splitStringArray[1];
if (prefix != "")
{
//MessageBox.Show("Result: " + prefix + "/" + suffix);
return prefix + "/" + suffix;
}
else
{
return suffix;
}
}
只是一个例子
正则表达式是解析字符串的最佳路径