我需要检查正则表达式

时间:2012-09-03 14:04:45

标签: regex

我有一个必须具有此名称格式的Excel文件,其中xxx是数字,yymmdd是日期。仅xxxyymmdd发生变化,其余部分始终相同。

CDFSDDRCxxxCurryymmdd.xls

我可以使用什么正则表达式来检查它是否正确?

3 个答案:

答案 0 :(得分:3)

尝试使用以下正则表达式:

^CDFSDDRC\d{3}Curr\d{6}\.xls$

答案 1 :(得分:0)

在C#中,我认为你可以尝试这样的事情:

"CDFSDDRC(?<xxx>[0-9]+)Curr(?<yymmdd>[0-9][0-9][0|1][0-9][0-3][0-9])\.xls"

但是您必须再次检查matches.Groups [&#34; yymmdd&#34;]。value以检查匹配但包含错误日期的特殊情况,例如CDFSDDRC123Curr321539.xls

答案 2 :(得分:0)

我认为以下内容应该有效。

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"