0

格式为:

19位数字后跟下划线后跟4位数字后跟下划线后跟1位数字后跟下划线后跟1个大写字母后跟下划线后跟4位数字后跟短划线后跟2数字,后跟破折号,后跟 2 位数字,后跟下划线,后跟 2 位数字,后跟破折号,后跟 2 位数字,后跟破折号,后跟 2 位数字并以".db"扩展名结尾

这里有一些文件名,因为我认为上面的信息读起来会很无聊。:) 提前感谢任何回答的人。

2408002705100010002_0002_0_V_2012-11-02_06-35-24.db 2408002705100010001_0001_0_V_2012-11-05_05-32-06.db 2408001000200000002_0002_0_E_2012-03-03_00-20-06.db

4

3 回答 3

1

\d{19}_\d{4}_\d_[A-Z]_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}\.db

http://gskinner.com/RegExr/ - 一个测试你的 RegEx 的网站

但我注意到,例如,在中间你有 sth like_0002_

您是否接受任何 4 位数字或以“000”开头的数字?

于 2013-10-04T09:44:21.227 回答
0
\d{19}_\d{4}_\d_[A-Z]_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}\.db

这一个还对日期/时间部分进行了基本检查(假设日期为 YYYY-MM-DD):

\d{19}_\d{4}_\d_[A-Z]_\d{4}-(0(?!0)|1(?=[0-2]))\d-(0(?!0)|[1-2]|3(?=[0-1]))\d_([0-1]|2(?=[0-3]))\d(-[0-5]\d){2}\.db

基本检查意味着您仍然可以插入像 2 月 30 日这样的日期,但不能插入 1 月 32 日。

于 2013-10-04T09:39:47.347 回答
0

根据您的数据:

\d{19}_0+\d_0_(V|E)?_(-?(\d{2}|\d{4}))+_(-?\d{2})+\.db

如果寻求更通用的:

\d{19}_\d+_\d_[A-Z]?_\d{4}(-\d{2}){2}_(-?\d{2})+\.db

高温高压

编辑:在旁注中,我宁愿将此字符串拆分为_,然后根据某些模式和/或属性单独验证每个部分。这样您就可以更好地控制该字符串的外观。

于 2013-10-04T09:43:54.950 回答