2013-06-27 436 views

回答

3

試試這個:

var input = ".1.12.3.4.12.4."; 
var output = Regex.Replace(input, @"\.(\d)(?=\.)", ".0$1"); 
Console.WriteLine(output); // .01.12.03.04.12.04. 
+0

這不匹配'1.2.4'即1開頭 – Anirudha

+3

@Anirudh OP沒有說它需要。 –

+0

thax夥計。這是勝利者。但上面提到的所有方法也很好。但你的是最短的:) –

0

你可以做到這一點

Regex.Replace(input,@"(?<=^|[.])(?=\d([.]|$))","0"); 
1

分割字符串成令牌,格式化每個產生的號碼,然後加入他們回:

var input = ".1.12.3.4.12.4."; 
var output = string.Join(
    ".", 
    input.Split('.') 
     .Select(i => i.Length == 0 ? "" : i.PadLeft(2, '0')) 
); 

最好這個解決方案的一部分是你可以很容易地改變填充結果的長度。

0
string result = string.Join(".", str.Split(".").Select(n => n.Length == 1 ? "0" + n : n));