从字符串中替换部件

Lea*_*sed -1 .net c#

我有一个如下字符串:

string str = "Key=abc;arg=pqr;lock=100;timeout=1;"
Run Code Online (Sandbox Code Playgroud)

现在我从字符串中替换此部分:

arg=pqr;
Run Code Online (Sandbox Code Playgroud)

所以我的最终字符串如下所示:

string final ="Key=abc;lock=100;timeout=1;"
Run Code Online (Sandbox Code Playgroud)

我尝试过如下:

string final = str.Replace("arg=pqr;", "");
Run Code Online (Sandbox Code Playgroud)

但问题是,当pqr改变其他类似的东西时Lmn,它将无法工作.

Dmi*_*nko 7

我建议使用正则表达式,以取代模式:"arg="其次是字母数字值;:

  string str = "Key=abc;arg=pqr;lock=100;timeout=1;";

  string final = Regex.Replace(str, @"arg=[0-9a-zA-Z]*;", "");
Run Code Online (Sandbox Code Playgroud)

在一般情况下,您可以实现这样的方法:

  private static string RemoveRecord(string source, string name) {
    string pattern = @"(?<!\w)" + Regex.Escape(name) + "=[0-9a-zA-Z]*;";

    return Regex.Replace(source, pattern, "");
  }

  ...

  string final = RemoveRecord("Key=abc;arg=pqr;lock=100;timeout=1;", "arg");
Run Code Online (Sandbox Code Playgroud)

  • @Learning:然后改变一下模式:`@"arg = [0-9a-zA-Z]*;"` (2认同)