用正则表达式解析字符串

时间:2009-10-29 20:52:35

标签: c# regex

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

  

a3:S8:[gmpage] S17:主管GM   NecrocideS12:测试[15158]

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

我的问题是,S12:字符并不总是S12:,它可能很容易S26: - 所以我不能在其上使用简单的String.Replace()。我需要将这3个字符替换为: 

我怎样才能使用正则表达式?谢谢。

2 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:0)

怎么样:

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