.net – 使用正则表达式修剪最后几位数

使用正则表达式.试图只获得数字的最后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
点赞