怎么在两种字符串中提取日期啊,提取结果要是年月日时分秒比如“2011-12-5 11:41:39”string a="ADDRESS_STREET=Clara-Zetkin Str. 02 PAYMENT_DATE=10:00:28 Apr 13, 2012 PDT PAYMENT_STATUS=Completed";
string n="ADDRESS_STREET=Fl?renes PAYMENT_DATE=11:41:39 Dec 05, 2011 PST PAYMENT_STATUS=Completed CHARSET=windows-1252";有没有通用的正则来获取这两段的年月日时分秒啊?

解决方案 »

  1.   

    楼主,通用的正则应该不好写,不过你用substring足够解决问题呀。
    你可以试试substring这个函数,也很简单。
      

  2.   

    楼主,由于你的地址长度不确定,中间需要用到charindex()函数的。
    结合上面我写的substring()函数可以解决你的问题。
      

  3.   

    (\d{1,2}:)+\d{1,2}\s\w+\s\d{1,2},\s\d{4}
      

  4.   


    void Main()
    {
    string a="ADDRESS_STREET=Clara-Zetkin Str. 02 PAYMENT_DATE=10:00:28 Apr 13, 2012 PDT PAYMENT_STATUS=Completed";
        string n="ADDRESS_STREET=Fl?renes PAYMENT_DATE=11:41:39 Dec 05, 2011 PST PAYMENT_STATUS=Completed CHARSET=windows-1252";
       Regex reg=new Regex(@"(\d{1,2}:)+\d{1,2}\s\w+\s\d{1,2},\s\d{4}");
       Console.WriteLine(Convert.ToDateTime(reg.Match(a).Value));    //2012-4-13 10:00:28
       Console.WriteLine(Convert.ToDateTime(reg.Match(n).Value)); //2011-12-5 11:41:39
    }