我正在使用的主程序产生一个字符串时间码,如下所示:
00:00:01.523
如何替换前导零并将其更改为以下内容:
--:--:-1.523
答案 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 - 即前导零。