2010-02-04 81 views
0

我有一個字符串,我想編輯它的一部分。 字符串就像編輯帶正則表達式的分隔字符串

「1:5,7:9,13:20,130:510134:2,」

現在

所有我想要做的是去除這些數字的前半部分像

「5,9,20,540,2」,

我試了一堆組合,但沒有得到我的預期。

Regex rx = new Regex("[:]\\d+[,]"); 
    foreach (Match mx in rx.Matches("10:20,20:30,")) 
    { 
     Muhaha.InnerText += mx; 
    } 

它返回「:20,:30」,但我只想捕獲數字,堅果標點符號。

+0

正則表達式似乎像這樣的矯枉過正。 – Oded 2010-02-04 15:58:16

+0

是的,我知道。但我仍然想找出如何正確地得到這件事。 – Batu 2010-02-04 16:02:38

+0

如果正則表達式是矯枉過正,這應該如何解析?用逗號分割,找到每個部分的分號並將其刪除?正則表達式(@Aistina)的解決方案更具可讀性。 – stej 2010-02-04 16:04:58

回答

2

如何使用Replace代替?

Regex r = new Regex("\\d+:"); 
string str = r.Replace("1:5,7:9,13:20,130:510,134:2,", ""); 
Console.WriteLine(str); 

打印:

5,9,20,510,2, 
+0

它運作良好,謝謝。 (有趣的..我很確定我試圖替換它之前。) – Batu 2010-02-04 16:10:37

0

試試這個,如果你想操作這些號碼加入他們之前(如果沒有,你應該@Aistina答案去):

foreach(Match m in Regex.Matches(
    "1:5,7:9,13:20,130:510,134:2,", 
    @":(?'number'\d+)")) 
{ 
    Console.WriteLine(m.Groups["number"].Value); 
} 
+0

沒有任何簡單的方法來避免捕獲「:」和「,」? – Batu 2010-02-04 16:16:39

+0

'(?<=:)(?'number'\ d +)(?=,)' – 2010-02-04 16:19:33

相關問題