2009-10-29 27 views
1

我有一個我需要解析的字符串。問題是字符串的某些部分並不總是相同的。用正則表達式分析字符串

A3:S8:[gmpage] S17:頭GM NecrocideS12:測試[15158]

第18個字符始終是相同的,因此那些可以我String.Substring()出來自如。

我的問題是,字符S12:並不總是S12:,很容易就會被S26: - 所以我不能在它使用一個簡單的String.Replace()。我需要將這3個字符替換爲: 

如何使用正則表達式來實現?謝謝。

+0

通過S12,你的意思是S17取代S26? – Mercurybullet 2009-10-29 20:57:21

+0

沒有東西在線NecrocideS12:測試:-) – janhartmann 2009-10-29 20:58:48

+0

糟糕,由於着色錯過了在Necrocide結束S12的S12 – Mercurybullet 2009-10-29 20:59:39

回答

3

試試這個:

string input = "a3:S8:[gmpage]S17:Head GM NecrocideS12:test [15158]"; 
string output = Regex.Replace(myString, "NecrocideS\d\d:", "Necrocide:"); 
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}"); 

這將通過 「」