我需要检查文件名的语法,以便对其进行处理并排除与表达式不匹配的文件。
文件名必须如下:
(2个字母或数字)_(一些字母和数字)__(YYYY-MM-dd-HH-SS-MM).csv
最后一部分是日期
在中间我们有两个下划线
你可以帮我解决这个问题吗?我对正则表达式并不熟悉,我做的几个测试都不好。
非常感谢:)
答案 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。