C# 删除以“开始”开头的字符串/&引用;并以“结束”\&引用;在c中#
我有一个登录用户名作为字符串,我想从该用户名中删除一个子字符串。e、 g.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
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语句将其结束。请检查此项