2

假设我有这样的字符串“.1.12.3.4.12.4”。

结果,我想得到“.01.12.03.04.12.04”。

如您所见,我希望所有长度 == 1 的数字都变为长度 == 2,开头为零。我怎样才能做到这一点?

4

4 回答 4

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.
于 2013-06-27T15:30:58.120 回答
1

将字符串拆分为标记,格式化每个结果数字,然后将它们连接回来:

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

此解决方案的最佳部分是您可以轻松更改填充结果的长度。

于 2013-06-27T15:31:25.227 回答
0

你可以这样做

Regex.Replace(input,@"(?<=^|[.])(?=\d([.]|$))","0");
于 2013-06-27T15:31:12.950 回答
0
string result = string.Join(".", str.Split(".").Select(n => n.Length == 1 ? "0" + n : n));
于 2013-06-27T15:33:05.083 回答