删除以“”开头的字符串/";并以“";在c#中

本文关键字:quot 并以 开头 字符串 删除 | 更新日期: 2023-09-27 18:07:39

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

这是我当前的代码。

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

删除以“”开头的字符串/";并以“";在c#中

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

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, "/");

您可以将三个部分分开:

var splitted = userName.Split(new char[] {'''', '/'});

其中split[0]是您的前缀(ABC(,split[1]是您的域(Domain-name(,split[2]是您的用户名(Pinto(

我做了一把小提琴:https://dotnetfiddle.net/zvbwZi

或者,您可以将其子字符串:

要获取前缀和用户名(例如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);

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

我也做了一把小提琴:https://dotnetfiddle.net/7YL0m5

的简单示例

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(edit, @"(?<=[/])");
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;
  }
}

示例

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

相关文章: