使用正则表达式.试图只获得数字的最后x位数和必要的0填充
考虑以下输入
1234
123
12
1
编辑:这些将单独显示为字符串值
我正在尝试制作一个正则表达式(或几个正则表达式,理想情况下只是一个)
让
34
23
12
01
我对正则表达式和反向引用有点新,并且仍然有点笨拙.关于在哪里寻找或可以做到这一点的任何想法?
谢谢
编辑澄清:
在.net的System.Text.Regex.Replace()函数中使用
这些值中的任何一个都可以作为输入参数.
编辑:感谢大家的想法.似乎这不能在正则表达式中完成.很伤心.
最佳答案 如果必须使用正则表达式,则可以在使用MatchEvaluator时执行此操作,但最好不要将正则表达式用于此任务.
由于您指出不使用正则表达式的解决方案可能是可接受的,因此这是在C#中使用正则表达式的一种方法:
void Run()
{
string s ="1234";
s = lastXDigits(s, 3);
Console.WriteLine(s);
}
string lastXDigits(string s, int x)
{
if (s.Length < x)
{
return s.PadLeft(x, '0');
}
else
{
return s.Substring(s.Length - x);
}
}
每个输入的结果:
234 123 012 001