匹配文件名中的多个可选字符

时间:2015-03-23 15:13:55

标签: regex

我正在尝试使用以下正则表达式来匹配文件名中的变体。我正在尝试匹配列出的文件名的所有

[IMG]{3}[0-9]{8}[_]?[a-zA-Z]?[0-9]{2}?\.JPG regexr example #1

IMG20150114_V10.JPG (match)
IMG20150114V10.JPG (match)
IMG20150114_V.JPG
IMG20150114A.JPG
IMG20150114a.JPG
IMG20150114.JPG

此示例与集合的其余部分匹配:

[IMG]{3}[0-9]{8}[_]?[a-zA-Z]?\.JPG regexr example #2

IMG20150114_V10.JPG 
IMG20150114V10.JPG
IMG20150114_V.JPG (match)
IMG20150114A.JPG (match)
IMG20150114a.JPG (match)
IMG20150114.JPG (match)

使用单个表达式匹配列表中的所有文件名,我缺少什么?

3 个答案:

答案 0 :(得分:1)

怎么样:

[IMG]{3}[0-9]{8}[_]?[a-zA-Z]?(?:[0-9]{2})?\.JPG

最后两位数字是可选的。

注意[IMG]{3}匹配IIIGGI ...可能是您想要的:

IMG[0-9]{8}_?[a-zA-Z]?(?:[0-9]{2})?\.JPG

答案 1 :(得分:1)

以下内容应符合您的需求:

IMG\d{8}(?:[a-zA-Z]|_?V\d*)?\.JPG

Regular expression visualization

Debuggex

的可视化

RegExr上的演示

答案 2 :(得分:1)

这个正则表达式应该可行

IMG\d+_?[a-zA-Z]*\d{0,2}.JPG

Regex101 demo