我已经看到了几个线程,并且尝试了其中提出的解决方案,但我似乎无法解决此问题。我有一个正则表达式,以mm/dd/yyyy , mm/dd/yyyy
格式检查两个日期。两者之间可以有许多空间。我的表达式在http://regexr.com/上有效,但是当我在vs中运行代码时,the Regex检查总是错误的。任何帮助将不胜感激!
var reg = new Regex(@"d{1,2}/d{1,2}/d{1,4}[ ]{0,},[ ]{0,}d{1,2}/d{1,2}/d{1,4}");
Console.WriteLine("Please enter two dates in dd/mm/yyyy format seperated by a comma");
string datesIn = Console.ReadLine();
while (reg.IsMatch(datesIn) != true);
{
Console.WriteLine("Sorry, please make sure to enter your dates in dd/mm/yyyy format seperated by a comma.");
datesIn.Replace(datesIn, Console.ReadLine());
}
String[] dates = datesIn.Split(',');
foreach (var date in dates)
Console.WriteLine(date.Trim());
Console.ReadLine();
我强烈建议您使用 TryParse
using System;
using System.Globalization;
public class Program
{
public static void Main()
{
var input = "12/10/2012, 12/15/2015";
String[] dates = input.Split(',');
if(dates.Length != 2){
Console.WriteLine("I said 2 dates");
} else {
foreach (var date in dates)
{
DateTime parsedDate;
if(DateTime.TryParse(date, new CultureInfo("es"), DateTimeStyles.None, out parsedDate))
{
Console.WriteLine("{0} Perfect!", parsedDate);
}
else
{
Console.WriteLine("{0} Not right sir!", date);
}
}
}
Console.ReadLine();
}
}
源代码:https://dotnetfiddle.net/vgequm