2012-9-9
2012-09-9
2012-9-09
均须替换为标准格式
2012-09-09由于有的数据不标准,所以可能有空格,需要把空格,以及前后多余的部分考虑进去如
2012-09 -9 12:00
我写的规则不完美,例如针对2012-9-9的(.*)(\d{4})(\s*)(-)(\s*)(\d{1})(\s*)(-)(\s*)(\d{1})(.*)替换规则 $2-0$6-0$10以上规则可以将2012-09 -9 12:00 替换为2012-09-09但如果遇到
2012-9-09
就变成
2012-09-00
了
请教下该怎么修改才能比较完美
当然,如果必须对应每个都写正则的话
那需要保证
(.*)(\d{4})(\s*)(-)(\s*)(\d{1})(\s*)(-)(\s*)(\d{1})(.*)
这个规则
对2012-9-09
这个格式。不产生任何替换
2012-09-9
2012-9-09
均须替换为标准格式
2012-09-09由于有的数据不标准,所以可能有空格,需要把空格,以及前后多余的部分考虑进去如
2012-09 -9 12:00
我写的规则不完美,例如针对2012-9-9的(.*)(\d{4})(\s*)(-)(\s*)(\d{1})(\s*)(-)(\s*)(\d{1})(.*)替换规则 $2-0$6-0$10以上规则可以将2012-09 -9 12:00 替换为2012-09-09但如果遇到
2012-9-09
就变成
2012-09-00
了
请教下该怎么修改才能比较完美
当然,如果必须对应每个都写正则的话
那需要保证
(.*)(\d{4})(\s*)(-)(\s*)(\d{1})(\s*)(-)(\s*)(\d{1})(.*)
这个规则
对2012-9-09
这个格式。不产生任何替换
2012-09-9
2012-9-09
均须替换为标准格式
2012-09-09";
str = Regex.Replace(str, @"(\d{4})\-0?(\d)\-0?(\d\D?)", "$1-0$2-0$3");
string str="2012 - 09 - 8";
DateTime dt=Convert.ToDateTime(System.Text.RegularExpressions.Regex.Replace(str,@"\s*", ""));
string newstr=dt.ToString("yyyy-MM-dd");
var output = DateTime.Parse("2011-9-09").ToString("yyyy-MM-dd");
正则规则:
替换规则:
这两项
格式就是
正则规则:(.*)(\d{4})(\s*)(-)(\s*)(\d{1})(\s*)(-)(\s*)(\d{1})(.*)
替换规则:$2-0$6-0$10麻烦大家看看呢,这个正则规则该怎么写例如以上是针对2012-9-9格式的怎么改才能确保它不影响2012-9-09格式,或其他格式,只影响2012-9-9格式
DateTime dt=Convert.ToDateTime(System.Text.RegularExpressions.Regex.Replace(str,@"\s*", ""));
string newstr=dt.ToString("yyyy-MM-dd");
我写的那个
(.*)(\d{4})(\s*)(-)(\s*)(\d{1})(\s*)(-)(\s*)(\d{1})(.*)
对应2012-9-9如果遇到2012-9-09
正则判断到2012-9-0,后面那个9就不判断,也输出了
能不能精确判断,第二个"-"后就只有1个数字才匹配,如果有2个数字就不匹配了