C# 删除以“开始”开头的字符串/&引用;并以“结束”\&引用;在c中#

C# 删除以“开始”开头的字符串/&引用;并以“结束”\&引用;在c中#,c#,string,C#,String,我有一个登录用户名作为字符串,我想从该用户名中删除一个子字符串。e、 g.username=“ABC/Domain name\Pinto”因此,在本例中,我只希望ABC/Pinto或“Pinto”作为输出。请在这方面帮助我 这是我当前的代码 var removeDomainName= userName.Substring(userName.IndexOf('/') + 1); 简单例子 string userName = @"ABC/Domain-name\Pinto"; string[] a

我有一个登录用户名作为字符串,我想从该用户名中删除一个子字符串。e、 g.
username=“ABC/Domain name\Pinto”
因此,在本例中,我只希望
ABC/Pinto
“Pinto”
作为输出。请在这方面帮助我

这是我当前的代码

var removeDomainName= userName.Substring(userName.IndexOf('/') + 1);
简单例子

string userName = @"ABC/Domain-name\Pinto";
string[] arrCompany = userName.Split('/');
Console.WriteLine(arrCompany[0] +"/"+ arrCompany[1].Split('\\')[1]);
Console.ReadLine();
简单例子

string userName = @"ABC/Domain-name\Pinto";
string[] arrCompany = userName.Split('/');
Console.WriteLine(arrCompany[0] +"/"+ arrCompany[1].Split('\\')[1]);
Console.ReadLine();

试试这样的

string userName = @"ABC/Domain-name\Pinto";
int pos = userName.LastIndexOf("/") + 1;
Console.WriteLine(userName.Substring(pos, userName.Length - pos));
另一种方法是用
/
替换所有
\
,以便更容易拆分。然后,根据需要组合它们

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(编辑,@)(?试试这样的方法

string userName = @"ABC/Domain-name\Pinto";
int pos = userName.LastIndexOf("/") + 1;
Console.WriteLine(userName.Substring(pos, userName.Length - pos));
另一种方法是将所有的
\
替换为
/
,以便更容易拆分。然后,根据需要组合它们

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(编辑,@)(?您可以拆分三部分:

var splitted = userName.Split(new char[] {'\\', '/'});
其中
split[0]
将是您的前缀(
ABC
),
split[1]
将是您的域名(
domain name
),而
split[2]
将是您的用户名(
Pinto

我做了一把小提琴:

或者,您可以将其子串:

要获取前缀和用户名(例如,
ABC\Pinto
):

然后仅获取用户名(例如,
Pinto
):

或者如果需要正斜杠(
ABC/Pinto
):

在这种情况下,
user
将已经是您的用户名


我也做了一把小提琴:

你可以分成三部分:

var splitted = userName.Split(new char[] {'\\', '/'});
其中
split[0]
将是您的前缀(
ABC
),
split[1]
将是您的域名(
domain name
),而
split[2]
将是您的用户名(
Pinto

我做了一把小提琴:

或者,您可以将其子串:

要获取前缀和用户名(例如,
ABC\Pinto
):

然后仅获取用户名(例如,
Pinto
):

或者如果需要正斜杠(
ABC/Pinto
):

在这种情况下,
user
将已经是您的用户名


我也做了一个小动作:

我建议您尝试使用正则表达式。一旦您熟悉了它,字符串操作对您来说将是一项容易得多的任务

string input = @"ABC/Domain-name\Pinto";
string regex = @"(\/){1}(\w.*)(\\){1}";
var result = Regex.Replace(input, regex, "/");
请在此处尝试:

根据@grek40注释简化正则表达式

string input = @"ABC/Domain-name\Pinto";
string regex = @"(\/.*\\)";
var result = Regex.Replace(input, regex, "/");

我建议您尝试使用正则表达式。一旦您熟悉了它,字符串操作对您来说将是一项更容易的任务

string input = @"ABC/Domain-name\Pinto";
string regex = @"(\/){1}(\w.*)(\\){1}";
var result = Regex.Replace(input, regex, "/");
请在此处尝试:

根据@grek40注释简化正则表达式

string input = @"ABC/Domain-name\Pinto";
string regex = @"(\/.*\\)";
var result = Regex.Replace(input, regex, "/");
只是一个例子

正则表达式是解析字符串的最佳路径

只是一个例子



正则表达式是解析字符串的最佳路径

如果输入字符串的格式始终相同,则可以使用
Split('\\')
返回数组并获取
[1]处的元素
。是否保证最多有一个
'/'
和一个
'\\'
?如果可以有更多,需要的输出是什么?可能重复。如果输入字符串的格式始终相同,则可以使用
拆分('\\')
,返回数组并在
[1]处获取元素
。是否保证最多有一个
'/'
和一个
'\\'
?如果可以有更多,需要的输出是什么?可能是的重复。谢谢。我尝试了这一个,但此代码给出的输出是“域名\Pinto”,但我想要输出“ABC/Pinto”。我应该怎么做才能得到这个输出。提前谢谢。我已经编辑了我的答案,我所做的所有更改都是这行控制台。WriteLine(arrCompany[0]+“/”+arrCompany[1]。Split(“\\”)[1]);谢谢。我尝试了这个方法,但代码给出的输出是“Domain name\Pinto”,但我想要输出“ABC/Pinto”。我应该怎么做才能得到这个输出。提前谢谢。我已经编辑了我的答案,我所做的更改就是这行控制台。WriteLine(arrCompany[0]+“/”+arrCompany[1]。拆分(“\\”)[1]);为什么里面有
\w
以及为什么有这么多大括号和计数限定符?正则表达式是正确的方法,但我认为您的表达式可以简化。有了这两种方法,详细方法和最小方法看起来都很好。反正您已经有了我的+1。为什么里面有
\w
以及为什么有这么多大括号和计数限定符?正则表达式是正确的正确的方法,但我认为您的表达式可以简化。既有详细的方法,也有最小的方法。您已经有了我的+1。谢谢。我尝试了第二种方法,但此代码给出的输出是“ABCPinto”。更接近一点。但我想要输出“ABC/Pinto”。我应该怎么做才能得到这个输出。提前谢谢。只需在字符串final=split[0]+split[2];处添加一个反斜杠。请检查编辑后的代码。您可以在此处进行检查。此外,如果您阅读了最后一部分,您也可以得到所需的输出。您好,如果用户名中有“Admin”这样的平面值,那么字符串final=split[0]+“/”+split[2];line给出错误“索引超出了数组的边界”。@Vinci用if else语句将其结束。请检查此项。谢谢。我尝试了第二项,但此代码给出的输出是“ABCPinto”。更接近一点。但我希望输出为“ABC/Pinto”。我应该怎么做才能得到这个输出。提前谢谢。只需在字符串final=split[0]+split[2];处添加一个反斜杠。请检查编辑后的代码。您可以在此处进行检查。此外,如果您阅读了最后一部分,您也可以得到所需的输出。您好,如果用户名中有“Admin”这样的平面值,那么字符串final=split[0]+“/”+split[2];第行给出错误“索引超出了数组的边界”。@Vinci用if-else语句将其结束。请检查此项