36个正则表达式(开发效率提高80%)


Posted in Javascript onNovember 17, 2021
目录

写在前面

我们在日常的Java开发中,经常需要处理一些字符串,这个时候正则表达式是非常有用的。几乎在所有的编程语言中都支持正则表达式。以下我将压箱底多年的干货搬出来给大家参考,都是我们日常使用频次比较高的正则表达式,希望能能大大提高你的工作效率。如果本文对大家有帮助,大家可以关注“Tom弹架构”,后续会连载正则表达式的基础知识。

1、整数

36个正则表达式(开发效率提高80%)

public static final String intege = "^-?[1-9]\\d*$/";          //整数
  
  /**  正例 */
  System.out.println(Pattern.matches(intege,"123")); // true
  System.out.println(Pattern.matches(intege,"-123")); // true
  
  /**   反例 */
  System.out.println(Pattern.matches(intege,"abc")); // false
  System.out.println(Pattern.matches(intege,"0")); // false

2、正整数

36个正则表达式(开发效率提高80%)

public static final String intege1 = "^[1-9]\\d*$/";          //正整数
  
  // 正例 
  System.out.println(Pattern.matches(intege1,"123")); // true
  
  //  反例 
  System.out.println(Pattern.matches(intege1,"-123")); // false
  System.out.println(Pattern.matches(intege1,"0")); // false

3、负整数

36个正则表达式(开发效率提高80%)

public static final String intege2 = "^-[1-9]\\d*$/";          //负整数

  // 正例 
  System.out.println(Pattern.matches(intege2,"-123")); // true
  
  // 反例 
  System.out.println(Pattern.matches(intege2,"123")); // false
  System.out.println(Pattern.matches(intege2,"0")); // false

4、数字

36个正则表达式(开发效率提高80%)

public static final String num = "^([+-]?)\\d*\\.?\\d+$/";          //数字
    
    // 正例 
    System.out.println(Pattern.matches(num,"123")); // true
    System.out.println(Pattern.matches("0")); // true
    
    // 反例 
    System.out.println(Pattern.matches(num,"a123")); // false

5、正数(正整数 + 0)

public static final String num1 = "^[1-9]\\d*|0$/";                 //正数(正整数 + 0)
    
    // 正例 
    System.out.println(Pattern.matches(num1,"123")); // true
    System.out.println(Pattern.matches(num1,"0")); // true
    
    // 反例 
    System.out.println(Pattern.matches(num1,"-123")); // false

6、负数(负整数 + 0)

36个正则表达式(开发效率提高80%)

public static final String num2 = "^-[1-9]\\d*|0$/";                    //负数(负整数 + 0)
    
    // 正例 
    System.out.println(Pattern.matches(num2,"-123")); // true
    System.out.println(Pattern.matches(num2,"0")); // true
    
    // 反例 
    System.out.println(Pattern.matches(num2,"123")); // false

7、浮点数

36个正则表达式(开发效率提高80%)

public static final String decmal = "^([+-]?)\\d*\\.\\d+$/";            //浮点数
    
    // 正例 
    System.out.println(Pattern.matches(decmal,"-0.1")); // true
    System.out.println(Pattern.matches(decmal,"0.1")); // true
    
    // 反例 
    System.out.println(Pattern.matches(decmal,"a.b")); // false

8、正浮点数

36个正则表达式(开发效率提高80%)

public static final String decmal1 = "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$"; //正浮点数
    
    // 正例 
    System.out.println(Pattern.matches(decmal1,"0.1")); // true
    
    // 反例 
    System.out.println(Pattern.matches(decmal1,"-0.1")); // false

9、负浮点数

36个正则表达式(开发效率提高80%)

public static final String decmal2 = "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$"; //负浮点数
    
    // 正例 
    System.out.println(Pattern.matches(decmal2,"-0.1")); // true
    
    // 反例 
    System.out.println(Pattern.matches(decmal2,"0.1")); // false

10、浮点数

36个正则表达式(开发效率提高80%)

public static final String decmal3 = "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$";//浮点数
    
    // 正例 
    System.out.println(Pattern.matches(decmal3,"-0.1")); // true
    System.out.println(Pattern.matches(decmal3,"0.1")); // true
    
    // 反例 
    System.out.println(Pattern.matches(decmal3,"a.b")); // false

11、非负浮点数(正浮点数 + 0)

36个正则表达式(开发效率提高80%)

public static final String decmal4 = "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$";  //非负浮点数(正浮点数 + 0)
    
    // 正例 
    System.out.println(Pattern.matches(decmal4,"0.1")); // true
    
    // 反例 
    System.out.println(Pattern.matches(decmal4,"-0.1")); // false

12、非正浮点数(负浮点数 + 0)

36个正则表达式(开发效率提高80%)

public static final String decmal5 = "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$"; //非正浮点数(负浮点数 + 0)
    
    // 正例 
    System.out.println(Pattern.matches(decmal5,"-0.1")); // true
    
    // 反例 
    System.out.println(Pattern.matches(decmal5,"0.1")); // false

13、邮箱地址

36个正则表达式(开发效率提高80%)

public static final String email = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$"; //邮件
    
    // 正例 
    System.out.println(Pattern.matches(email,"tom@gupaoedu.com")); // true
    
    // 反例 
    System.out.println(Pattern.matches(email,"tom.gupaoedu.com")); // false

14、颜色值匹配

36个正则表达式(开发效率提高80%)

public static final String color = "^[a-fA-F0-9]{6}$";              //颜色
    
    // 正例 
    System.out.println(Pattern.matches(color,"ffffff")); // true
    System.out.println(Pattern.matches(color,"FFFFFF")); // true
    
    // 反例 
    System.out.println(Pattern.matches(color,"#FFFFFF")); // false
    System.out.println(Pattern.matches(color,"white")); // false

15、url匹配

36个正则表达式(开发效率提高80%)

public static final String url = "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-.\\/?%&=]*)?$"; //url
    
    // 正例 
    System.out.println(Pattern.matches(url,"http://www.xxx.com")); // true
    System.out.println(Pattern.matches(url,"https://www.xxx.com")); // true
    System.out.println(Pattern.matches(url,"www.xxx.com")); // true
    
    // 反例 
    System.out.println(Pattern.matches(url,"abcd")); // false

16、纯仅中文字符

36个正则表达式(开发效率提高80%)

public static final String chinese = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$";                 //仅中文
    
    // 正例 
    System.out.println(Pattern.matches(chinese,"汤姆弹架构")); // true
    
    // 反例 
    System.out.println(Pattern.matches(chinese,"Tom弹架构")); // false

17、仅ACSII字符

36个正则表达式(开发效率提高80%)

public static final String ascii = "^[\\x00-\\xFF]+$";              //仅ACSII字符
    
    // 正例 
    System.out.println(Pattern.matches(ascii,"abc123")); // true
    
    // 反例 
    System.out.println(Pattern.matches(ascii,"にそ①②③")); // false

18、邮政编码

36个正则表达式(开发效率提高80%)

public static final String zipcode = "^\\d{6}$";                        //邮编
    
    // 正例 
    System.out.println(Pattern.matches(zipcode,"100000")); // true
    
    // 反例 
    System.out.println(Pattern.matches(zipcode,"1000000")); // false

19、国内手机号码

36个正则表达式(开发效率提高80%)

public static final String mobile = "^(13|15|16|17|18)[0-9]{9}$";               //手机
    
    // 正例 
    System.out.println(Pattern.matches(zipcode,"13800138000")); // true
    
    // 反例 
    System.out.println(Pattern.matches(zipcode,"19900010002")); // false

20、IP V4 地址

36个正则表达式(开发效率提高80%)

public static final String ip4 = "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$"; //ip地址
    
    // 正例 
    System.out.println(Pattern.matches(zipcode,"127.0.0.1")); // true
    
    // 反例 
    System.out.println(Pattern.matches(zipcode,"aa.bb.cc.dd")); // false

21、非空字符

36个正则表达式(开发效率提高80%)

public static final String notempty = "^\\S+$";                     //非空
    
    // 正例 
    System.out.println(Pattern.matches(notempty,"  abc ")); // true
    
    // 反例 
    System.out.println(Pattern.matches(notempty,"")); // false

22、图片后缀

36个正则表达式(开发效率提高80%)

public static final String picture = "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga|JPG|BMP|GIF|ICO|PCX|JPEG|TIF|PNG|RAW|TGA)$"; //图片
    
    // 正例 
    System.out.println(Pattern.matches(picture,"tom.jpg")); // true
    
    // 反例 
    System.out.println(Pattern.matches(picture,"tom.txt"")); // false

23、音频后缀

36个正则表达式(开发效率提高80%)

public static final String audio = "(.*)\\.(mp3|wma|mid|midi|wav|vqf|MP3|WMA|MID|MIDI|WAV|VQF)$";   //音频
    
        // 正例 
    System.out.println(Pattern.matches(audio,"tom.mp3")); // true
    
    // 反例 
    System.out.println(Pattern.matches(audio,"tom.txt"")); // false

24、视频后缀

36个正则表达式(开发效率提高80%)

public static final String video = "(.*)\\.(rm|3gp|mp4|rmvb|avi|wmv|flv|vob|exe|mkv|swf|RM|3GP|MP4|RMVB|AVI|WMV|FLV|VOB|EXE|MKV|SWF)$"; // 视频格式
    
    // 正例 
    System.out.println(Pattern.matches(video,"tom.mp4")); // true
    
    // 反例 
    System.out.println(Pattern.matches(video,"tom.txt"")); // false

25、压缩文件后缀

36个正则表达式(开发效率提高80%)

public static final String rar = "(.*)\\.(rar|zip|7zip|tgz|RAR|ZIP|7ZIP|TGZ)$"; //压缩文件
    
    // 正例 
    System.out.println(Pattern.matches(rar,"tom.zip")); // true
    
    // 反例 
    System.out.println(Pattern.matches(rar,"tom.txt"")); // false

26、日期格式 

36个正则表达式(开发效率提高80%)

public static final String date = "^\\d{4}(\\-|\\/|\\.)\\d{1,2}\\1\\d{1,2}$";   //日期
    
    // 正例 
    System.out.println(Pattern.matches(date,"2024-10-24")); // true
    System.out.println(Pattern.matches(date,"2024/10/24")); // true
    
    // 反例 
    System.out.println(Pattern.matches(date,"2024年10月24日"")); // false

27、日期和时间格式

36个正则表达式(开发效率提高80%)

public static final String datetime = "^\\d{4}(\\-|\\/|\\.)\\d{1,2}\\1\\d{1,2}(\\s\\d{2}:)?(\\d{2}:)?(\\d{2})?$";   //日期和时间
    
    // 正例 
    System.out.println(Pattern.matches(datetime,"2024-10-24 23:59:59")); // true
    System.out.println(Pattern.matches(datetime,"2024/10/24 23:59:59")); // true
    
    // 反例 
    System.out.println(Pattern.matches(datetime,"2024年10月24日 23时59分59秒"")); // false

28、QQ号码

36个正则表达式(开发效率提高80%)

public static final String qq = "^[1-9]*[1-9][0-9]*$";      //QQ号码
    
    // 正例 
    System.out.println(Pattern.matches(qq,"123456")); // true
    
    // 反例 
    System.out.println(Pattern.matches(qq,"1234567890")); // false

29、电话号码的函数(包括验证国内区号,国际区号,分机号)

36个正则表达式(开发效率提高80%)

public static final String tel = "^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$";  //电话号码的函数(包括验证国内区号,国际区号,分机号)
    
    // 正例 
    System.out.println(Pattern.matches(tel,"010-1234567")); // true
    System.out.println(Pattern.matches(tel,"0100-12345678")); // true
    
    // 反例 
    System.out.println(Pattern.matches(tel,"13800138000")); // false

30、用户名注册

36个正则表达式(开发效率提高80%)

public static final String username = "^[A-Za-z]\\w{5,}$";  //用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
        
    // 正例 
    System.out.println(Pattern.matches(username,"gupaoedutom")); // true
    
    // 反例 
    System.out.println(Pattern.matches(username,"tom@gupaoedu")); // false

31、字母数字组合

public static final String allstring = "^\\w+$"; //字母数字组合
    
    // 正例 
    System.out.println(Pattern.matches(allstring,"abc123")); // true
    
    // 反例 
    System.out.println(Pattern.matches(allstring,"abc123%^&")); // false

32、纯字母

public static final String letter = "^[A-Za-z]+$";                  //字母
    
    // 正例 
    System.out.println(Pattern.matches(letter,"abc")); // true
    
    // 反例 
    System.out.println(Pattern.matches(letter,"abc123")); // false

33、纯大写字母

public static final String letter_u = "^[A-Z]+$";                   //大写字母
    
    // 正例 
    System.out.println(Pattern.matches(letter_u,"ABC")); // true
    
    // 反例 
    System.out.println(Pattern.matches(letter_u,"abc")); // false

34、纯小写字母

public static final String letter_l = "^[a-z]+$";                   //小写字母
    
    // 正例 
    System.out.println(Pattern.matches(letter_l,"abc")); // true
    
    // 反例 
    System.out.println(Pattern.matches(letter_l,"ABC")); // false

35、第二代身份证号码匹配

public static final String idcard = "^[1-9]([0-9]{14}|[0-9]{17})$"; //身份证
    
    // 正例 
    System.out.println(Pattern.matches(idcard,"100000201410241024")); // true
    
    // 反例 
    System.out.println(Pattern.matches(idcard,"1000002014102410240")); // false

36、数字或字母

public static final String numOrStr = "^[A-Za-z0-9]+$";//数字或字母
    
    // 正例 
    System.out.println(Pattern.matches(numOrStr,"abc123")); // true
    System.out.println(Pattern.matches(numOrStr,"abc")); // true
    System.out.println(Pattern.matches(numOrStr,"123")); // true
    
    // 反例 
    System.out.println(Pattern.matches(numOrStr,"三水点靠木")); // false

到此这篇关于36个正则表达式(开发效率提高80%)的文章就介绍到这了,更多相关正则表达式内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js 连接数据库如何操作数据库中的数据
Nov 23 Javascript
JQuery实现简单时尚快捷的气泡提示插件
Dec 20 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
Dec 30 Javascript
原生JS实现旋转木马式图片轮播插件
Apr 25 Javascript
js中document.referrer实现移动端返回上一页
Feb 22 Javascript
Bootstrap常用组件学习(整理)
Mar 24 Javascript
JavaScript运动框架 多物体任意值运动(三)
May 17 Javascript
vue使用axios跨域请求数据问题详解
Oct 18 Javascript
Vue中如何实现proxy代理
Apr 20 Javascript
详解AngularJS 过滤器的使用
Jun 02 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 Javascript
Angularjs之ngModel中的值验证绑定方法
Sep 13 Javascript
Javascript 解构赋值详情
Nov 17 #Javascript
javascript Number 与 Math对象的介绍
Nov 17 #Javascript
javascript条件式访问属性和箭头函数介绍
Nov 17 #Javascript
JavaScript 对象创建的3种方法
Nov 17 #Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 #Javascript
JavaScript高级程序设计之基本引用类型
Nov 17 #Javascript
JavaScript高级程序设计之变量与作用域
You might like
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
php中session与cookie的比较
2015/01/27 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
node.js入门教程
2014/06/01 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
python字符串连接的N种方式总结
2014/09/17 Python
python修改注册表终止360进程实例
2014/10/13 Python
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
python实现备份目录的方法
2015/08/03 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
学校搬迁方案
2014/06/15 职场文书
2014年征兵标语
2014/06/20 职场文书
股东授权委托书范文
2014/09/13 职场文书
教师年终个人总结
2015/02/11 职场文书
土建技术员岗位职责
2015/04/11 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle