正则表达式C#:检查包含日期和下划线的文件名

时间:2018-04-25 12:28:55

标签: c# regex

我需要检查文件名的语法,以便对其进行处理并排除与表达式不匹配的文件。

文件名必须如下:

  

(2个字母或数字)_(一些字母和数字)__(YYYY-MM-dd-HH-SS-MM).csv

     

最后一部分是日期
  在中间我们有两个下划线

你可以帮我解决这个问题吗?我对正则表达式并不熟悉,我做的几个测试都不好。

非常感谢:)

2 个答案:

答案 0 :(得分:2)

我已经创建了一些样本。请在下面找到它适合您,您也可以根据您的要求进行修改。

例如(22)-(ww)-(aa).csv

^[(\[][a-zA-Z0-9]{2}[)\]]+(-[(\[][a-zA-Z0-9]{2}[)\]]+)+(-[(\[][a-zA-Z0-9]{2}[)\]]+.csv)$

例如(22)_(ww)_(01-12-2018 19:20).csv

^[(\[][a-zA-Z0-9]{2}[)\]]+(_[(\[][a-zA-Z0-9]{2}[)\]]+)+(_[(\[]([1-9]|([012][0-9])|(3[01]))-([0]{0,1}[1-9]|1[012])-\d\d\d\d [012]{0,1}[0-9]:[0-6][0-9][)\]]+.csv)$

例如(22)_(ww)_(1999-12-31-23-59-59).csv

^[(\[][a-zA-Z0-9]{2}[)\]]+(_[(\[][a-zA-Z0-9]{2}[)\]]+)+(_[(\[]19\d{2}(-|\/)((0[1-9])|(1[0-2]))(-|\/)((0[1-9])|([1-2][0-9])|(3[0-1]))(-)(([0-1][0-9])|(2[0-3]))-([0-5][0-9])-([0-5][0-9])[)\]]+.csv)$

我建议您引用此网址Click Here,这对学习很有帮助,您可以找到更多示例。感谢

答案 1 :(得分:1)

如果String只包含文件名

,这是适合您请求的RegEx
^.{2}_.+__\d{4}(?:-\d{2}){5}.csv$

如果您想从更长的String中捕获它,例如

(.{2}_.+__\d{4}(?:-\d{2}){5}.csv)

如果您在创建RegEx时遇到困难,我建议您查看RegExr