清理糟糕的日期 - 使用RegEx?

时间:2011-07-18 09:56:19

标签: c# regex datetime

我正在从第三方来源解析一些日期,遗憾的是有些日期很糟糕。 清洁/消毒

的最佳方法是什么?

E.g。

  

周三20月7日 - >星期三20日(星期三)

     

7月20日星期二 - > 7月20日星期二

一旦我得到这些,我只是使用

转换它们
DateTime myDateTime = DateTime.Parse("Wednesday 20 July");

转换这些格式错误的日期的最佳方式是什么?

我确实玩过RegEx,但我不是专家

Regex regEx = new Regex("[0-9][a-zA-Z]");
Match match = Regex.Match("Wednesday 20July", "[0-9][a-zA-Z]");

在找到匹配项后,我不确定如何在正确的位置插入空格。

1 个答案:

答案 0 :(得分:2)

你可以在数字和字母之间(或字母和数字之间)插入一个空格,如下所示:

resultString = Regex.Replace(subjectString, @"(?<=\d)(?=\p{L})|(?<=\p{L})(?=\d)", " ");

(?<=\d)检查前一个字符是否为数字。

(?=\p{L})检查以下字符是否为字母。