代码之家  ›  专栏  ›  技术社区  ›  Norbert B. MJB

在正则表达式替换中,如何用该字符串的填充版本替换数字字符串?

  •  1
  • Norbert B. MJB  · 技术社区  · 15 年前

    我有一个4或5位数的数字串,需要用“0”填充到6位数长。这有可能吗?我正在使用.NET框架。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Mark Byers    15 年前

    执行此操作不需要正则表达式。你可以使用 string.PadLeft :

    s = s.PadLeft(6, '0');
    

    如果您需要使用正则表达式(可能是因为您正在执行一些更复杂的替换,而这只是其中的一小部分),那么您可以使用 MatchEvaluator 结合以上技术:

    string s = "foo <12423> bar";
    s = Regex.Replace(s, @"<(\d+)>", match => match.Groups[1].Value.PadLeft(6, '0'));
    

    结果:

    foo 012423 bar