从日期替换额外的数字

时间:2014-04-07 08:15:47

标签: c# regex datetime

我有OCR提取的日期字符串,因为图像质量日期的第二个斜杠变为1,

即。日期是23/0212014,其中1年前/实际上应该是。我试图用正则表达式替换1,但它不起作用。

DateTime.TryParseExact不起作用,我尝试的代码是:

string mm = "23/0212014";
var rex = new Regex(@"(?:((\d{2}\/\d{2})1(\d{4})))");
mm = rex.Replace(mm, "");

如何将其转换为正确的日期(dd/MM/yyyy)

1 个答案:

答案 0 :(得分:3)

DateTime.TryParseExact对我很好:

using System;
using System.Globalization;

class Test
{
    static void Main()
    {
        string text = "23/0212014";
        DateTime result;
        if (DateTime.TryParseExact(text, "dd/MM'1'yyyy",
                                   CultureInfo.InvariantCulture,
                                   DateTimeStyles.None, out result))
        {
            Console.WriteLine(result);
        }
        else
        {
            Console.WriteLine("Failed to parse");
        }
    }
}

输出:

23/02/2014 00:00:00

(一旦你将其解析为DateTime,你可以根据需要重新格式化它。)

我肯定会尝试使用此而不是正则表达式。