删除字符串,以“/”开头,以c#中的“\”结尾

时间:2016-09-19 07:16:44

标签: c# string

我有一个登录用户名作为字符串,我想从该用户名中删除一个子字符串。例如username= "ABC/Domain-name\Pinto"因此,在这种情况下,我只想要ABC/Pinto或仅"Pinto"作为输出。请帮助我。

这是我目前的代码。

var removeDomainName= userName.Substring(userName.IndexOf('/') + 1);

5 个答案:

答案 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;
  }
}

只是一个例子

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