问题描述
|
好的,所以现在我有两个问题。
我有一个文件名列表。其中一些文件名可能包含HTML十六进制颜色参考。就像
#11AACC
。另外,我只对图像文件(扩展名jpg,jpeg,png,gif和bmp)感兴趣。因此,我想要一个正则表达式,如果文件扩展名是上述之一,则该正则表达式将匹配,此外,如果字符串中任何位置都有HTML颜色引用,它也会被捕获。如果有多个引用,我不在乎会捕获哪个引用(应该只有一个),但是应该捕获一个引用。也可以有多个,我可以忽略除第一个以外的其余部分。哦,整个事情都应该不区分大小写,但这是最少的麻烦。
如有必要,我可以限制颜色参考的位置。但是,我希望它位于扩展名之前,因为否则命名这些文件将很麻烦。
我正在尝试执行/(#[a-fA-F]{6})?\\.(?:jpeg|jpg|png|gif|bmp)$/i
或/(#[a-fA-F]{6})?.*\\.(?:jpeg|jpg|png|gif|bmp)$/i
之类的操作,但是它没有捕获颜色参考。
解决方法
是因为你的角色阶级
[a-fA-F]
哪个代表十六进制数字缺少数字?
尝试
[a-fA-F0-9]
由于您使用i
修饰符来区分大小写,因此可以使用:
[a-f0-9]