2010-05-06 40 views
1

我希望能夠讀取文件,並替換的所有實例:與S1800查找和替換字符串的通配符類型的搜索一款

M9S1800.2(我想擺脫M9和.2)。

我遇到的問題是,「S」後面的4位數字可能每次都不同,以及小數點後的數字也不同。

例如,

它可以是:M9S3200.1或M9S5400.1或M9S5400.2

可有人請告訴我怎麼用C#這樣做嗎?

我知道如何找到並使用此代碼替換:

StreamReader reader = new StreamReader(fDialog.FileName.ToString()); 
string content = reader.ReadToEnd(); 
reader.Close(); 

content = Regex.Replace(content, "M2", "M3"); 

但與M9S3200.1,我想做一個通配符類型取代。例如,它會像S *一樣替代M9S * .1,因此M9S3200.1將成爲S3200。

+0

很高興你在這裏得到正則表達式的幫助。這裏有一些迂腐的幫助:與JavaScript不同,C#沒有正則表達式。 – 2010-05-10 22:10:57

+0

也應該使用'string content = null;使用(StreamReader reader = new StreamReadeer(...)){content = reader.ReadToEnd();}'。即使拋出異常也會清除。 – 2010-05-10 22:12:24

回答

6
content = Regex.Replace(content, @"M9(S\d{4})\.\d", "$1"); 
+0

非常感謝。完美的作品。 – fraXis 2010-05-06 21:00:55