代码之家  ›  专栏  ›  技术社区  ›  janhartmann

用regex分析字符串

  •  1
  • janhartmann  · 技术社区  · 15 年前

    我有一个字符串需要解析。问题是字符串的某些部分并不总是相同的。

    A3:S8:[gmpage]S17:总经理 必要的12:试验[15158]

    前18个字符总是相同的,所以我可以 String.Substring() 轻松地离开。

    我的问题是角色 S12: 并非总是如此 S12: 很容易 S26: -所以我不能用简单的 String.Replace() 关于它。我要把这三个字换成 : 

    我该怎么用瑞格斯呢?谢谢您。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Chris Van Opstal    15 年前

    试试这个:

    string input = "a3:S8:[gmpage]S17:Head GM NecrocideS12:test [15158]";
    string output = Regex.Replace(myString, "NecrocideS\d\d:", "Necrocide:");
    
        2
  •  0
  •   Nestor    15 年前

    怎么样:

    Regex reg = new Regex(@"\A(?<before>a3:S8:\[gmpage\])(?<delete>.{3})(?<after>:Head GM NecrocideS12:test \[15158\])\Z");
    string input = @"a3:S8:[gmpage]S26:Head GM NecrocideS12:test [15158]";
    string output = reg.Replace(input, "${before}${after}");
    

    这将用“”替换S26