图像文件扩展名正则表达式模式

([^\s]+(\.(?i)(jpg|png|gif|bmp))$)

描述

(          #Start of the group #1[^\s]+           #  must contains one or more anything (except white space)(     #    start of the group #2\.        #   follow by a dot "."(?i)       #   ignore the case sensive checking for the following characters(      #     start of the group #3jpg  #       contains characters "jpg"|        #       ..orpng #       contains characters "png"|        #       ..orgif #       contains characters "gif"|        #       ..orbmp #       contains characters "bmp")        #     end of the group #3)      #     end of the group #2   $           #  end of the string
)           #end of the group #1

整个组合是指,必须具有1个或多个字符串(但不能有空格),后跟点“。”。 字符串以“ jpg”或“ png”或“ gif”或“ bmp”结尾,而且expand的文件不区分大小写。

此正则表达式模式广泛用于不同文件的广泛检查。 您只需更改结束组合(jpg | png | gif | bmp)即可进行不同的文件扩展名检查,以适应您的需要。

Java正则表达式示例

package com.mkyong.regex;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class ImageValidator{private Pattern pattern;private Matcher matcher;private static final String IMAGE_PATTERN = "([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$)";public ImageValidator(){pattern = Pattern.compile(IMAGE_PATTERN);}/*** Validate image with regular expression* @param image image for validation* @return true valid image, false invalid image*/public boolean validate(final String image){matcher = pattern.matcher(image);return matcher.matches();}
}

符合以下条件的图片文件:

1.“ a.jpg”,“ a.gif”,“ a.png”,“ a.bmp”,
2.“ ..jpg”,“ .. gif”,“ .. png”,“ .. bmp”,
3.“ a.JPG”,“ a.GIF”,“ a.PNG”,“ a.BMP”,
4.“ a.JpG”,“ a.GiF”,“ a.PnG”,“ a.BmP”,
5.“ jpg.jpg”,“ gif.gif”,“ png.png”,“ bmp.bmp”

图片不匹配:

1.“ .jpg”,“。gif”,“。png”,“。bmp” –图像文件名是必需的
2。“。jpg”,“。gif”,“。png”,“。bmp” –第一个字符中不允许有空格
3.“ a.txt”,“ a.exe”,“ a。”,“ a.mp3” –仅允许图像文件扩展名
3.“ jpg”,“ gif”,“ png”,“ bmp” –图像文件扩展名

单元测试– ImageValidator

package com.mkyong.regex;import org.testng.Assert;
import org.testng.annotations.*;/*** Image validator Testing* @author mkyong**/
public class ImageValidatorTest {private ImageValidator imageValidator;@BeforeClasspublic void initData(){imageValidator = new ImageValidator();}@DataProviderpublic Object[][] ValidImageProvider() {return new Object[][]{{new String[] {"a.jpg", "a.gif","a.png", "a.bmp","..jpg", "..gif","..png", "..bmp","a.JPG", "a.GIF","a.PNG", "a.BMP","a.JpG", "a.GiF","a.PnG", "a.BmP","jpg.jpg", "gif.gif","png.png", "bmp.bmp"}}};}@DataProviderpublic Object[][] InvalidImageProvider() {return new Object[][]{{new String[] {".jpg", ".gif",".png",".bmp"," .jpg", " .gif"," .png"," .bmp","a.txt", "a.exe","a.","a.mp3","jpg", "gif","png","bmp"}}};}@Test(dataProvider = "ValidImageProvider")public void ValidImageTest(String[] Image) {for(String temp : Image){boolean valid = imageValidator.validate(temp);System.out.println("Image is valid : " + temp + " , " + valid);Assert.assertEquals(true, valid);}}@Test(dataProvider = "InvalidImageProvider", dependsOnMethods="ValidImageTest")public void InValidImageTest(String[] Image) {for(String temp : Image){boolean valid = imageValidator.validate(temp);System.out.println("Image is valid : " + temp + " , " + valid);Assert.assertEquals(false, valid);}}
}

单元测试–结果

Image is valid : a.jpg , true
Image is valid : a.gif , true
Image is valid : a.png , true
Image is valid : a.bmp , true
Image is valid : ..jpg , true
Image is valid : ..gif , true
Image is valid : ..png , true
Image is valid : ..bmp , true
Image is valid : a.JPG , true
Image is valid : a.GIF , true
Image is valid : a.PNG , true
Image is valid : a.BMP , true
Image is valid : a.JpG , true
Image is valid : a.GiF , true
Image is valid : a.PnG , true
Image is valid : a.BmP , true
Image is valid : jpg.jpg , true
Image is valid : gif.gif , true
Image is valid : png.png , true
Image is valid : bmp.bmp , true
Image is valid : .jpg , false
Image is valid : .gif , false
Image is valid : .png , false
Image is valid : .bmp , false
Image is valid :  .jpg , false
Image is valid :  .gif , false
Image is valid :  .png , false
Image is valid :  .bmp , false
Image is valid : a.txt , false
Image is valid : a.exe , false
Image is valid : a. , false
Image is valid : a.mp3 , false
Image is valid : jpg , false
Image is valid : gif , false
Image is valid : png , false
Image is valid : bmp , false
PASSED: ValidImageTest([Ljava.lang.String;@1d4c61c)
PASSED: InValidImageTest([Ljava.lang.String;@116471f)===============================================com.mkyong.regex.ImageValidatorTestTests run: 2, Failures: 0, Skips: 0
==============================================================================================
mkyong
Total tests run: 2, Failures: 0, Skips: 0
===============================================

想更多地了解正则表达式? 强烈推荐这本最好的经典书籍-“掌握正则表达式”

标签: 图片 正则表达式

翻译自: https://mkyong.com/regular-expressions/how-to-validate-image-file-extension-with-regular-expression/


http://www.taodudu.cc/news/show-5799954.html

相关文章:

  • 缩放到图层
  • 咸鱼Maya笔记—图层操作
  • photoshop模糊图层_在Photoshop中按住Ctrl键单击图层
  • ArcGIS开发基础教程(四):核心概念之图层和数据(下)
  • python嵌套是什么意思_python中的嵌套字典是什么意思?
  • java swing 图层_Java swing图层的问题
  • 怎么使用混合图层?什么是混合图层?
  • 最优化算法数学详解之——梯度下降法和牛顿迭代法
  • 机器学习之求解无约束最优化问题方法(手推公式版)
  • 安装与运行 | AidLux入门操作①
  • AidLux 1.2 正式发布
  • Alt+Tab切换应用程序窗口卡顿解决方案
  • 带渐变色的柱状图,看着挺美~
  • 【博客主页】你值得拥有的渐变色背景!
  • echart vue项目中将饼状图块设置成渐变色
  • 【常见CSS扫盲之渐变效果】好看的24种CSS渐变效果汇总(附源码)
  • Echarts 柱状图、饼状图等变换颜色、渐变色
  • pytorch深度学习原理实战-rightness函数
  • 深度学习神经网络基本原理
  • 【深度学习模型】ChatGPT原理简述
  • 什么是深度学习?其工作原理是什么?
  • 深度学习的原理是什么?
  • 简单讲讲设计四大原则 - 前端读《写给大家看的设计书》收获
  • Sketch VS Pixso:这两款热门界面设计软件,谁更能打?
  • 【交互设计】如何描述你的产品
  • 设计模式----门面模式
  • 设计模式 之 命令
  • html5--6-44信纸设计
  • 每日一个开除小技巧
  • 开发工作中使用的命令行

如何使用正则表达式验证图像文件扩展名相关推荐

  1. js正则表达式验证文件扩展名

    验证文件是否是图片 function checkSuffix(str){var strRegex = /\.(jpg|png|gif|bmp|jpeg)$/; if (strRegex.test(st ...

  2. 图形图像文件扩展名一览(转)

    图形图像文件大致上可以分为两大类:一类为位图文件:另一类为矢量类文件.前者以点阵形式描述图形图像,后者是以数学方法描述的一种由几何元素组成的图形图像.位图文件在有足够的文件量的前提下,能真实细腻地反映 ...

  3. 实验室:通过混淆文件扩展名上传 Web shell

    前言: 即使是最详尽的黑名单也可能被经典的混淆技术绕过.假设验证代码区分大小写并且无法识别它exploit.pHp实际上是一个.php文件.如果随后将文件扩展名映射到 MIME 类型的代码不区分大小写 ...

  4. 递归查找具有特定扩展名的文件

    我正在尝试使用我的bash(最新的Ubuntu LTS版本)在目录及其子目录中查找具有特定扩展名的所有文件. 这是在脚本文件中写的: #!/bin/bashdirectory="/home/ ...

  5. java正则表达式验证_Java中的正则表达式电话号码验证

    java正则表达式验证 Validating a phone number using regular expression is tricky because the phone number ca ...

  6. [转载]使用正则表达式验证本地化数据

    使用正则表达式验证本地化数据 数据验证是编写任何用户界面时经常要处理的一项杂务.Java™ 语言的正则表达式支持可以使数据验证变得更容易.您可以定义一个正则表达式,用于描述有效数据,然后让 Java ...

  7. ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI

    URL重写已经有很多的方法,但是多数都有一个缺点,就是不支持无扩展名的网页.微软提供的方法需要在根目录里面建立jyk的文件夹,然后再建立一个default.aspx的文件,如果您有100名会员的话,这 ...

  8. TMG 日志队列(Log Queue,扩展名为 .LLQ)持续增长或 TMG

    以下文档转自:http://blog.sina.com.cn/liqiang1359 用户有时会观察到 TMG 日志队列(Log Queue,扩展名为 .LLQ)持续增长或 TMG 安装目录下 Log ...

  9. 常见文件扩展名(二)

    转载至程式先锋技术维客[url]www.javabiz.cn[/url] ASC ASCⅡ文本文件:PGP算法加密文件 ASD Microsoft Word的自动保存文件:Microsoft高级流媒体 ...

最新文章

  1. android4.4 添加快捷开关(以截屏为例)
  2. AI科技大本营招实习生了!
  3. Boost:不受约束的集合bimap的测试程序
  4. ibd文件如何变为json_如何轻松了解 Python 必学的 django 框架?
  5. 使用Jedis源码生成Jedis.jar
  6. 关于http协议详解(摘)
  7. kafka搭建、学习(一)
  8. 百度硬盘搜索插件开发指南(摘自百度)
  9. 北大青鸟汉字注释机内码_北大青鸟主机汉子机内码 汉字机内码在线转换
  10. fx991计算器矩阵计算机,如何用卡西欧fx991计算器算矩阵
  11. 高维球体的体积是多少
  12. 多元统计分析最短距离法_多元统计分析-聚类分析
  13. 个人所得税java程序怎么编写_个人所得税Java实现代码
  14. 细数SuperComputer最新排名和常见Benchmark类型
  15. MySql 查询数据库中所有表名
  16. jQuery DOM元素的遍历
  17. HM二次开发 - 外部程序采用socket与HM实现通信
  18. 手写HashMap及测试
  19. 软件版本GA,RC,Demo,Build意思
  20. 网络爬虫---抓包分析,用抓包分析爬取腾讯视频某视频所有评论(Fiddler工具包的分享)

热门文章

  1. mysql数据库导出1049报错_MySQL数据库导出与导入及常见错误解决
  2. 到底怎样才算爱一个人
  3. Unity FMOD 音效失真变形
  4. Puppet使用记录
  5. 使用MindStudio进行I3D推理
  6. 因特尔黑科技:黑暗中快速成像系统
  7. P1414 又是毕业季II(数论)
  8. Python中matplotlib改变三维坐标图坐标点间隔的问题
  9. CPU镜头和非CPU镜头
  10. python飞机大战源代码(可直接运行)