替换特定位置的字符
本文关键字:字符 位置 定位 替换 | 更新日期: 2023-09-27 18:09:58
我的输入是一个字符串,表示机器的执行时间和日期。问题是这个字符串格式很糟糕,因此我不能使用DateTime.Parse
将其转换为DateTime
对象。
输入例子:
2014 - 01 - 07 15.26.46.000452
我需要将其转换为我可以使用的东西(将最后的'-'替换为空格和前2 ')。
2014-01-07 15:26:46.000452
我想我应该使用正则表达式来解决这个问题,因为我需要在特定位置替换字符,所以myString.Replace
不会有任何好处。不幸的是,我使用正则表达式的知识几乎为零,我找不到任何例子来匹配我的问题。
有人能帮我解决这个问题吗?(另外,我想要一个关于如何&
您可以使用DateTime来解析它。按自定义日期和时间格式字符串ParseExact
DateTime dt = DateTime.ParseExact( "2014-01-07-15.26.46.000452",
"yyyy-MM-dd-H.m.s.ffffff",
System.Globalization.CultureInfo.InvariantCulture);
看起来不太漂亮,但效果很好:
string yourString = "2014-01-07-15.26.46.000452";
string newString = Regex.Replace(yourString, @"('d+)-('d+)-('d+)-('d+).('d+).('d+).('d+)", "$1-$2-$3 $4:$5:$6.$7");
它只是把所有的数字去掉,然后构造你想要的日期。