替换时间码字符串中的前导零

时间:2016-11-25 23:25:51

标签: c#

我正在使用的主程序产生一个字符串时间码,如下所示:

00:00:01.523

如何替换前导零并将其更改为以下内容:

--:--:-1.523

1 个答案:

答案 0 :(得分:2)

您可以将Regex.Replace方法与zero-width negative lookbehind assertion

一起使用
string input = "00:00:01.523";
string output = Regex.Replace(input, "(?<![1-9].*)0", "-");
// Output: "--:--:-1.523"

正则表达式(?<![1-9].*)0有两个主要部分:

  • (?<![1-9].*)是一个零宽度的负面后瞻断言。它验证输入字符串匹配当前位置左侧的[1-9].*。 (正则表达式[1-9].*匹配任何数字1-9,后跟任意字符串。)
  • 0匹配数字0。

将这两个部分放在一起,正则表达式作为一个整体匹配任何数字0 not 前面有任何数字1-9 - 即前导零。