特定文件名的正则表达式

regex for specific filename

我需要在上传前验证文件名。我认为正则表达式将是完美的解决方案,但我不知道正则表达式。

文件名都有特定的结构。

我自己尝试的是:/([-\d]{2,})_([a-zA-Z\d]+)/,但这只会匹配文件名中的第一个数字和第一个标签。

示例:100_test-tag1-tag2.gif 或 100_test_tag1-tag2.gif

文件必须以数字开头,数字后应有下划线。在那之后,它至少应该有一个带有标签的部分。标签可以用下划线或连字符分隔。标签可以出现无数次。文件结尾应该是.gif.

您的尝试即将完成:

试试这个:

/([-\d]{2,})_([a-zA-Z\d]+)([_-][a-zA-Z\d]+)*\.gif/

我添加了这个:

([_-][a-zA-Z\d]+)*

匹配 _- 后跟标签零次或多次。
并且

\.gif

匹配尾随的 .gif。