在C#中,如何使用Regex.Replace添加前导零(如果可能)?

Bas*_*mme 6 .net c# regex

我想在字符串中的数字中添加一定数量的前导零.例如:

输入:"第1页",输出:"第001页"输入:"第12页",输出:"第012页"输入:"第123页",输出:"第123页"

使用Regex.Replace做到这一点的最佳方法是什么?

此刻我用这个但结果是001,0012,00123.

string sInput = "page 1";
sInput  = Regex.Replace(sInput,@"\d+",@"00$&");
Run Code Online (Sandbox Code Playgroud)

Sve*_*ven 12

正则表达式替换表达式不能用于此目的.但是,Regex.Replace有一个过载需要委托,允许您为替换进行自定义处理.在这种情况下,我正在搜索所有数值并将其替换为填充为三个字符长度的相同值.

string input = "Page 1";
string result = Regex.Replace(input, @"\d+", m => m.Value.PadLeft(3, '0'));
Run Code Online (Sandbox Code Playgroud)

在旁注中,我不建议在C#代码中使用匈牙利语前缀.它们没有提供真正的优势和.Net的常见风格指南建议不要使用它们.