假設我有這樣的字符串「.1.12.3.4.12.4」。用Regex替換部分匹配的字符串。替換
因此我想獲得「.01.12.03.04.12.04」。正如你所看到的,我希望長度== 1的所有數字在開始時變爲長度爲2的零。我怎樣才能做到這一點?
假設我有這樣的字符串「.1.12.3.4.12.4」。用Regex替換部分匹配的字符串。替換
因此我想獲得「.01.12.03.04.12.04」。正如你所看到的,我希望長度== 1的所有數字在開始時變爲長度爲2的零。我怎樣才能做到這一點?
試試這個:
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.
你可以做到這一點
Regex.Replace(input,@"(?<=^|[.])(?=\d([.]|$))","0");
分割字符串成令牌,格式化每個產生的號碼,然後加入他們回:
var input = ".1.12.3.4.12.4.";
var output = string.Join(
".",
input.Split('.')
.Select(i => i.Length == 0 ? "" : i.PadLeft(2, '0'))
);
最好這個解決方案的一部分是你可以很容易地改變填充結果的長度。
string result = string.Join(".", str.Split(".").Select(n => n.Length == 1 ? "0" + n : n));
這不匹配'1.2.4'即1開頭 – Anirudha
@Anirudh OP沒有說它需要。 –
thax夥計。這是勝利者。但上面提到的所有方法也很好。但你的是最短的:) –