目前我正在使用以下RegEx将yyyyMMdd转换为yyyy-MM-dd:
Regex.Replace(inputString, @"(\w{4})(\w{2})(\w{2})", @"$1-$2-$3");
对Regex一无所知,我需要将yyyyMMddhhmm转换为yyyy-MM-dd hh:ss
有人可以帮我解决这个问题。 谢谢 罗德尼
答案 0 :(得分:5)
请勿使用正则表达式或String
- 但DateTime
方法将String
转换为DateTime
并返回String
:
string dtStr = "20151005";
DateTime date = DateTime.ParseExact(dtStr, "yyyyMMdd", DateTimeFormatInfo.InvariantInfo);
string result = date.ToString("yyyy-MM-dd");
dtStr = "201510051445";
date = DateTime.ParseExact(dtStr, "yyyyMMddHHmm", DateTimeFormatInfo.InvariantInfo);
result = date.ToString(" yyyy-MM-dd hh:ss");
答案 1 :(得分:0)
\w
用于匹配单个字词,例如A
,D
,1
和3
,在您的情况下是一点点有点奇怪。我希望\d
只匹配数字。{
和}
用于计数。 {4}
表示:匹配四次。(
和)
用于分组和捕获。所以构造\d{4}
意味着:匹配四位数。并且(\d{4})
表示:将4位数字作为一个组匹配(在您的情况下:第一组)。
Regex.Replace(inputString, @"(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})", @"$1-$2-$3 $4:$5");
有关更多信息,请查看此处:https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx
当然,还有其他解决方案没有正则表达式来解析DateTime值,例如DateTime.ParseExact(...)和DateTime.ToString(format)。