C#:在日期上拆分字符串,保持日期完整

C#:在日期上拆分字符串,保持日期完整,c#,regex,C#,Regex,我有以下样本数据: 21/10/2012 blahblah blah blahblah 265 blah 25 22/10/2012 blahblah blah blahblah 10 blah 14 blah 66 NK blahblah blah blahblah 25 我希望输出为以下数据: 21/10/2012 blahblah blah blahblah 265 blah 25 22/10/2012 blahblah blah blahblah 10 blah 14 blah 66

我有以下样本数据:

21/10/2012 blahblah blah blahblah 265 blah 25 22/10/2012 blahblah blah blahblah 10 blah 14 blah 66 NK blahblah blah blahblah 25
我希望输出为以下数据:

21/10/2012 blahblah blah blahblah 265 blah 25
22/10/2012 blahblah blah blahblah 10 blah 14 blah 66 NK blahblah blah blahblah 25
我尝试了以下方法:

var regex = new Regex ("(\d{1,2})/(\d{1,2})/(\d{4})");
var matches = regex.Matches(str);//str is given above
foreach(var item in matches)
{
  //my logic to do operations
}

这将给出日期数组。如何在日期上拆分字符串?

您可以在日期之前在空字符串上拆分字符串。为此,您需要此正则表达式:

string[] arr = Regex.split(str, "(?<!\d)(?=\d{1,2}/\d{1,2}/\d{4})");

它还验证了35/36之类的日期/2012@BhushanFirake. 为了捕获有效日期,您必须构建一个不同的正则表达式,这将是一个复杂的正则表达式。仅在字符类中使用有效数字,而不是
\d
@BhushanFirake。更新的正则表达式,你可以试试。
string[] arr = Regex.split(str, "(?<!\\d)(?=(?:0[1-9]|[1-2][0-9]|[3][01])/(?:0[1-9]|1[0-2])/(?:19[0-9]{2}|2[0-9]{3}))");