- UID
- 1066743
|
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就可完成转换 |
|