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 相关文章推荐
javascript优先加载笔记代码
Sep 30 Javascript
Extjs中常用表单介绍与应用
Jun 07 Javascript
js判断选择的时间是否大于今天的代码
Aug 20 Javascript
JavaScript利用正则表达式去除日期中的“-”
Jul 01 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
May 18 Javascript
简单实现js鼠标跟随效果
Aug 02 Javascript
移动设备手势事件库Touch.js使用详解
Aug 18 Javascript
vue实现微信分享链接添加动态参数的方法
Apr 29 Javascript
vue.js实现图书管理功能
Sep 24 Javascript
基于javascript实现碰撞检测
Mar 12 Javascript
jquery插件懒加载的示例
Oct 24 jQuery
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
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
php实现微信企业转账功能
2018/10/02 PHP
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python 支付整合开发包的实现
2019/01/23 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
优秀安全员事迹材料
2014/05/11 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
婚育证明样本
2015/06/16 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS