一、这里写的是一个测试方法,只需要粘贴该方法,传需要传的参数即可。返回参数为字典类型的键值对始情况可进行修改
1.方法一的时间处理是先提取年月日,再提取时分秒,然后再合并年月日时分秒
protected Dictionary<string, string> getPrameters( string str)
{
Dictionary<string, string> dit = new Dictionary<string, string>();// listPra = new List<string>();
string regx1 = "[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))";
Regex r1 = new Regex(regx1);
var m1 = r1.Match(str);
string regx4 = "(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))";
Regex r4 = new Regex(regx4);
var m4 = r4.Match(str);
var m4F = m4.Value.Replace(':', ':');
var date = (m1.Value + " " + m4F).ToString();
//DateTime a = Convert.ToDateTime(datet);
//var datet2 = m4.Value.Replace(':', ':');
//DateTime a2 = Convert.ToDateTime(datet2);
//DateTime? dateNew = null;
if (!string.IsNullOrEmpty(date) && date != " ")
{
//dateNew = Convert.ToDateTime(date);
dit.Add("time", date.ToString());
}
else
{
dit.Add("time", null);
}
string regxp2 = "((-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2}))";
Regex r2 = new Regex(regxp2);
var m2 = r2.Match(str);
dit.Add("money", m2.Value);
string regxp3 = "([1-9]{1}\\d*){10,}";
Regex r3 = new Regex(regxp3);
var m3 = r3.Match(str);
dit.Add("code", m3.Value);
return dit;
}
2.方法二的时间处理是直接提取年月日时分秒,然后进行处理,转换为正确的时间格式
protected Dictionary<string, string> getPrameters1(string str)
{
Dictionary<string, string> dit = new Dictionary<string, string>();// listPra = new List<string>();
//支付时间
string regx1 = "[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))";
Regex r1 = new Regex(regx1);
var m1 = r1.Match(str);
var datef = string.Empty;
if (!string.IsNullOrEmpty(m1.Value))
{
string regx4 = "(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))";
Regex r4 = new Regex(regx4);
var m4 = r4.Match(m1.Value);
var m4F = m4.Value.Replace(':', ':');
datef = m1.Value.Replace(m4.Value, " " + m4F);
}
if (!string.IsNullOrEmpty(datef) && datef != " ")
{
//dateNew = Convert.ToDateTime(date);
dit.Add("time", Convert.ToDateTime(datef).ToString());
}
else
{
//dit.Add("time", null);
//通知时间
string rex = @"(\d{2,4}(\.|年|\/|\-))?((0?[469]|11)(\.|月|\/|\-))((30)|([12][0-9])|(0?[1-9]))日(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))";
Regex rg = new Regex(rex, RegexOptions.Multiline | RegexOptions.Singleline);
var dateHan = rg.Match(str).Value;
var dateTZ = string.Empty;
var dateNow = DateTime.Now;//11月5日
DateTime? payTime = null;
if (!string.IsNullOrEmpty(dateHan))
{
string regx5 = "(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))";
Regex r5 = new Regex(regx5);
var m5 = r5.Match(dateHan);
var m5F = m5.Value.Replace(':', ':');
dateTZ = dateHan.Replace(m5.Value, " " + m5F);
var date = Convert.ToDateTime(dateTZ);
if (date > dateNow)
{
payTime = date.AddYears(-1);
}
else
{
payTime = date;
}
}
if (!string.IsNullOrEmpty(dateTZ) && dateTZ != " ")
{
//dateNew = Convert.ToDateTime(date);
dit.Add("time", payTime.ToString());
}
else
{
//dit.Add("paytime", null);
dit.Add("time", null);
}
}
//收款金额
string regxp2 = "((-)?(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){1,2}))";
Regex r2 = new Regex(regxp2);
var m2 = r2.Match(str);
dit.Add("money", m2.Value);
//交易单号
string regxp3 = "([1-9]{1}\\d*){10,}";
Regex r3 = new Regex(regxp3);
var m3 = r3.Match(str);
dit.Add("code", m3.Value);
return dit;
}
二、调用
var str = "";
var str = "";
var dit = getPrameters1(str);
Response.Write("时间:" + dit["time"] + "<br />");
Response.Write("金额:" + dit["money"] + "<br />");
Response.Write("单号:" + dit["code"] + "<br />");