繁体   English   中英

用正则表达式解析字符串

[英]Parse string with regex

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

a3:S8:[gmpage] S17:Head GM NecrocideS12:test [15158]

前18个字符始终是相同的,因此我可以轻松地将这些String.Substring()取出。

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

我该如何使用正则表达式呢? 谢谢。

尝试这个:

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

怎么样:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM