我有一个必须具有这种名称格式的 excel 文件,其中xxx
是数字,yymmdd 是日期。只有xxx
和yymmdd
变化,其余的总是一样的。
CDFSDDRCxxxCurryymmdd.xls
我可以用什么正则表达式来检查它是否正确?
我有一个必须具有这种名称格式的 excel 文件,其中xxx
是数字,yymmdd 是日期。只有xxx
和yymmdd
变化,其余的总是一样的。
CDFSDDRCxxxCurryymmdd.xls
我可以用什么正则表达式来检查它是否正确?
尝试使用以下正则表达式:
^CDFSDDRC\d{3}Curr\d{6}\.xls$
在 C# 中,我认为你可以尝试这样的事情:
"CDFSDDRC(?<xxx>[0-9]+)Curr(?<yymmdd>[0-9][0-9][0|1][0-9][0-3][0-9])\.xls"
但是您必须再次检查matches.Groups["yymmdd"].value 以检查特殊情况,例如CDFSDDRC123Curr321539.xls
该匹配但包含不正确的日期。
我认为以下应该有效。
CDFSDDRC\d[3]Curr(([0-9]{2}(0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|([0-9]{2}(0[469]|1[1])(0[1-9]|[12][0-9]|30))|([0-9]{2}(02)(0[1-9]|1[0-9]|2[0-8]))|((((04|08|[2468][048]|[13579][26]))|00)(02)29))\.xsl
我认为您必须转义 C# 字符串中的反斜杠。
"CDFSDDRC\\d[3]Curr(([0-9]{2}(0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|([0-9]{2}(0[469]|1[1])(0[1-9]|[12][0-9]|30))|([0-9]{2}(02)(0[1-9]|1[0-9]|2[0-8]))|((((04|08|[2468][048]|[13579][26]))|00)(02)29))\\.xsl"