将正则表达式与yyyy-mm-dd-n格式的日期进行匹配

本文关键字:日期 正则表达式 yyyy-mm-dd-n 格式 | 更新日期: 2023-09-27 18:21:57

我用C#写了这行代码:

Regex regex = new Regex(@"('d'd'd'd-'d'd-'d'd|'d'd'd'd-'d'd-'d'd-'d)");

我希望正则表达式匹配以yyyy-mm-dd格式编写的任何日期,并且可能(如果内容中已经存在日期)匹配以yyyy-mm-dd-n格式编写的日期,其中n是0-9之间的数字。

例如:

2013-02-09和2013-02-09-0

谢谢。

将正则表达式与yyyy-mm-dd-n格式的日期进行匹配

首先,您可以用更简单的形式重写正则表达式:('d{4}-'d{2}-'d{2})(-'d)?(单击代码查看正则表达式测试仪)。

我在捕获组的日期部分周围添加了一些括号,因此它将忽略后面的-0

你现在能做的是:

foreach (Match match in regex.Matches(richtxbDagensBehandling.Text))
{
    string dateValue = match.Groups[1].Value; //will never contain the -0 part
    ...
}

只需使用此正则表达式,即可在末尾使-'d可选:

'b('d{4}-'d{2}-'d{2})(?:-'d)?'b

'b是一个单词边界
(?:...)是非捕获组。