如何使用Regex Library在C#中进行此替换?

时间:2014-06-24 01:11:15

标签: c# regex

我有以下问题:我有这个文本,我需要做的是匹配这个简单的模式 ^(\ b(\ d {1,2})(。0)?\ b)< / strong>开始时间假定的24小时格式。

单字符串变量中的文本

1.0 3.53 2.29 31.67 2.0 3.53 2.29 31.67 3.0 3.53 2.29 31.67 4.0 3.53 2.29 31.67 5 3.53 2.29 31.67 6 3.53 2.29 31.67 7 3.53 2.29 31.67 8.0 3.53 2.29 31.67 9 3.53 2.29 31.67 10.0 3.53 2.29 31.67 11.0 3.53 2.29 31.67 12.0 3.53 2.29 31.67 13.0 3.53 2.29 31.67 ...

例如,我想将 1.0 替换为 1:00 ,或者在此匹配结束时添加 7 7: 00 即可。换句话说,用替换来检索整个文本,如下所示:

预期结果

1:00 3.53 2.29 31.67 2:00 3.53 2.29 31.67 3:00 3.53 2.29 31.67 4:00 3.53 2.29 31.67 6:00 3.53 2.29 31.67 5:00 3.53 2.29 31.67 7:00 3.53 2.29 31.67 8:00 3.53 2.29 31.67 9:00 3.53 2.29 31.67 10:00 3.53 2.29 31.67 11:00 3.53 2.29 31.67 12:00 3.53 2.29 31.67 13:00 3.53 2.29 31.67 ...

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果每次都是一个字符串,您可以使用以下内容:

String input  = "13.0  3.53  2.29  31.67";
String result = Regex.Replace(input, @"^(\d+)[\d.]*", "$1:00");
//=> "13:00  3.53  2.29  31.67"

答案 1 :(得分:0)

不是最漂亮的正则表达式,但应该有效:

((?:^|\s)\d{1,2})(\.0)?(\s|$)

这是live example