好的,现在I've got two problems。
我有一个文件名列表。其中一些文件名可能包含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
之类的操作,但它不会捕获颜色参考。
答案 0 :(得分:2)
是因为你的角色类
[a-fA-F]
表示十六进制数字是缺少数字?
尝试
[a-fA-F0-9]
由于您使用i
修饰符进行案例敏感性,您可以使用:
[a-f0-9]