2016-02-02 217 views

回答

3

可以使用Regex.Replace(與String.Trim結合刪除尾隨破折號):

string str = "123456789012"; 
string res = Regex.Replace(str, @"\d{4}", match => match + "-").Trim('-'); 

Console.WriteLine(res); // 1234-5678-9012 
+0

是的,它解決了我的問題。謝謝。你能解釋爲什麼你用match => match +「 - 」。我無法理解這一點。 – anand

+0

這意味着匹配正則表達式模式'\ d {4}' - 連續4位數字,請檢查給定的msdn參考以獲取詳細信息。 –

0

作爲 -regex替代方法,可以使用Batch from MoreLINQ like;

string s = "123456789012"; 
var list = s.Batch(4, seq => new string(seq.ToArray())); 
Console.WriteLine(string.Join("-", list)); 

打印

1234-5678-9012 
+0

因此這種方法或正則表達式是高效的 – anand