首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

c#去html标志,对字符串保留数字小数点(1)

c#去html标志,对字符串保留数字小数点(1)

命名空间

using System.Text.RegularExpressions;





1.我们采集到的数据 比如有些日期很不规则 带有中文 比如2013年5月8日     2013年5月  这里提供把这类不规则的日期转化成datatime类型




     public DateTime  ConvertTime(string a)
            {
               
     
                 DateTime dt;
                 try
                 {
                     try
                     {
                         dt = Convert.ToDateTime(a);
                     }
                     catch
                     {
                         dt = ClearDate(a);
                     
                     }
     
                 }
                 catch
                 {
                     string newStr = "";
     
                     Regex re = new Regex(@"(\d{2,4})年(\d{1,2})月(\d{1,2})日*|(\d{2,4})年(\d{1,2})月*|(\d{1,2})月(\d{1,2})日*|(\d
    {2,4})年*", RegexOptions.None);
                         string[] lines = re.Split(a);
                         List<string> dates = new List<string>();
                       
     
     
                         int n;
                         if (lines.Length >= 4)
                         {
                             for (int i = 0; i < 4; i++)
                             {
                                 if (int.TryParse(lines[i], out n))
                                 {
                                     dates.Add(lines[i].ToString()); //为数字
                                 }
     
     
                             }
                         }
                         else
                         {
                             for (int i = 0; i < lines.Length; i++)
                             {
                                 if (int.TryParse(lines[i], out n))
                                 {
                                     dates.Add(lines[i].ToString()); //为数字
                                 }
     
     
                             }
                         }
     
                         if (dates.Count() == 1)
                         {
                           
                             newStr = dates[0].ToString()+"-1-1";
                         }
                         else
                         {
                             for (int s = 0; s < dates.Count(); s++)
                             {
                                 if (s == dates.Count() - 1)
                                 {
                                     if (dates[s] == "" | dates[s] == "0" | dates[s] == "00")
                                     {
                                         dates[s] = "1";
                                     }
                                     newStr += dates[s].ToString();
                                 }
                                 else
                                 {
                                     if (dates[s] == "" | dates[s] == "0" | dates[s] == "00")
                                     {
                                         dates[s] = "1";
                                     }
                                     newStr += dates[s].ToString() + "-";
                                 }
     
                             }
     
                         }
                       
                    
     
     
                     dt = Convert.ToDateTime(newStr);
                 }
              return dt;
            
            }
     
     
       public DateTime ClearDate(string a)
            {
     
                Regex r = new Regex(@"([1-9]\d*\-{1}\d*\-{1}\d*)");
     
                //开始匹配
                Match m = r.Match(a);
                string newStr = "";
                while (m.Success)
                {
                    //匹配成功
                    newStr += m.Groups[0].Value;
     
                    //从上一个匹配结束的位置开始下一个匹配
                    m = m.NextMatch();
                }
     
              return  Convert.ToDateTime(newStr);
            }



直接调用ConvertTime就可完成转换
返回列表