0

0

99+ 个常用正则表达式,一次白嫖个够!

青灯夜游

青灯夜游

发布时间:2022-07-19 11:10:42

|

3087人浏览过

|

来源于掘金社区

转载

正则描述了一种字符串匹配的模式,但对于很多人来说写正则就是”兰德里的折磨“吧。如果不是有需求频繁要用,根本就不会想着学它。本篇文章就给大家整理分享一些常用正则表达式,想要白嫖正则吗?快来收藏吧!

想要白嫖正则是吧?本篇就一次给你个够!先冲 99 个!(如果还觉得不够就评论反馈后再加,本篇持续更新加码!!)

另外 1 个小 tips,对正则阅读有障碍的同学可以借助这个网站 jex.im/regulex/,将正则可视化,从此爱上读正则!

比如:校验邮箱的正则:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

1.png

可视化后,直接看图说话,小白都会,真滴 tql !!

好了,冲了!

号码相关

  • 手机号(以 1 开头):/^(?:(?:\+|00)86)?1\d{10}$/

  • 手机号(以 13 至19 开头):/^(?:(?:\+|00)86)?1[3-9]\d{9}$/

  • 手机号(以工信部公布的手机号段开头):/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/

  • 国内固话号码:/\d{3}-\d{8}|\d{4}-\d{7}/

  • 邮箱号:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/

  • 邮政编码:/[1-9]\d{5}(?!\d)/

  • 身份证号:/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/

  • 银行卡号(公、私账户):/^[1-9]\d{9,29}$/

  • 车牌号:/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/

  • QQ 号:/^[1-9][0-9]{4,10}$/

  • 微信号:/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/

  • 版本号( x.y.z ):/^\d+(?:\.\d+){2}$/

  • 合法账号1(字母开头,5-16位,允许字母数字下划线):/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/

  • 合法账号2(4-16位,允许字母,数字,下划线,减号):/^[a-zA-Z0-9_-]{4,16}$/

  • 强密码1(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/

  • 强密码2(必须包含字母、数字、特殊字符:**@#$%^& `~()-+=* ):

/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&* ~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^& *~()-+=]+$)(?![0-9\W_!@#$%^&* ~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*~()-+=]/

  • 网址:/^(((ht|f)tps?):\/\/)?(^!@#$%^&*?.\s-?\.)+[a-z]{2,6}\/?/

  • 网址带端口号:/^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/

  • ip-v4:/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b/

  • ip-v6:/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/

数字相关

  • 只有数字:/^[0-9]*$//^\d{1,}$/

  • 整数:/^-?[0-9]\d*$/

  • 正整数:/^\+?[1-9]\d*$/

  • 非正整数:/^-[1-9]\d*|0$/

  • 负整数:/^-[1-9]\d*$/

  • 非负整数:/^\d+$/

  • 浮点数:/^(-?\d+)(\.\d+)?$/

  • 正浮点数:/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/

  • 负浮点数:/^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)/

  • 小数:/^-?\d+\.\d+$/

  • 正数/负数/小数:/^(\-|\+)?\d+(\.\d+)?$/

  • 正实数保留小数点后 2 位:/^[0-9]+(.[0-9]{2})?$/

  • 正实数保留小数点后 1 到 3 位:/^[0-9]+(.[0-9]{1,3})?$/

  • n 位数字:/^\d{n}$/

  • 至少 n 位数字:/^\d{n,}$/

  • m 至 n 位的数字:/^\d{m,n}$/

  • 数字和字母至少包含其一:/^[A-Za-z0-9]+$/

  • 必须包含数字和字母:/^(?=.*[a-zA-Z])(?=.*\d).+$/

  • md5 值 :/^([a-f\d]{32}|[A-F\d]{32})$/

  • base64 值:/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i

字符相关

  • m 至 n 位的字符:/^.{3,20}$/

  • 英文字母字符:/^[A-Za-z]+$/

  • 大写英文字母字符:/^[A-Z]+$/

  • 小写英文字母字符:/^[a-z]+$/

  • 汉字:/^[\u4e00-\u9fa5]{0,}$/

  • 全角符号:/[\uFF00-\uFFFF]/

  • 半角符号:/[\u0000-\u00FF]/

  • 汉字、英文、数字、下划线至少其一:/^[\u4E00-\u9FA5A-Za-z0-9_]+$/

  • 不包含字符 “~” :/[^~\x22]+/

    UNIX技术手册 Unix in a Nutshell, 4th Edition 英文PDF文字版
    UNIX技术手册 Unix in a Nutshell, 4th Edition 英文PDF文字版

    Unix in a Nutshell同时涵盖了许多重要的、业界标准的开放源码工具 本书还完整地讨论了常用的shell(bash、ksh及tcsh)和重要元素如正则表达式,乃至旧式工具如sed、awk与vi。 Unix不是一个庞大的物体:它是一个综合体,而《Unix技术手册》则是将这一切合并在一起的一本书。 到底unix是什么?原始的unix源码是由sco拥有,unix注册商标是由open group拥有,而领先的仿unix系统则是gnu/linux、mac os x及solaris。这些版本所附的命令与选

    下载
  • 字符连续重复:/(.)\1+/

⌚时间相关

  • 24小时制时间(HH:mm:ss):/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/

  • 12小时制时间(hh:mm:ss):/^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/

  • 24小时制时间(HHmmss):/([0-1]?[0-9]|2[0-3])([0-5][0-9])([0-5][0-9])$/

  • 日期1(yyyy-MM-dd,如 2222-01-01,年份必为4位):/^\d{4}-\d{1,2}-\d{1,2}/

  • 日期2(如 333-01-01,年份可小于4位):/^\d{1,4}(-)(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31)$/

  • 日期3(yyyyMMdd,如 20220202):/^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))$/

  • 日期+时间1(YYYYMMDD HH:mm:ss):/^\d{4}([/:-\S])(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31) (?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/

  • 日期+时间2: /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/

  • 一年 12 个月((01~09 或 1~12)):/^(0?[1-9]|1[0-2])$/

  • 一个月 31 天(01~09 或 1~31):/^((0?[1-9])|((1|2)[0-9])|30|31)$/

  • 有 31 天的月份:/^(0?[13578]|1[02])$/

  • 有 30 天月的份:/(0[469]|11)-(0[1-9]|[12][0-9]|30)/

  • 2 月 28 天("02-28"):/^02-(0[1-9]|[1][0-9]|2[0-8])$/

  • 闰年:/^(((19|20)([13579][26]|[2468][048]|0[48]))|(2000))$/

  • 闰年 2 月(比如 2008-02-01):/^(((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-(0?[1-9]|[12]\d)$/

  • 日期(包括闰年、大小月的判断):/((((19|20)\d{2})-(0?(1|[3-9])|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/

  • 年份区间-年(比如 19 年至 20 年):/^((19|20)\d{2})$/

  • 年份区间-年月(比如 1999-01):/^((((19|20)\d{2})-(0?[13-9]|1[012]))|(((19|20)\d{2})-(0?[13578]|1[02]))|(((19|20)\d{2})-0?2)|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2))$/

  • 年份区间-年月日(比如 1999-01-01):/^((((19|20)\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/.test('2021-02-21')$/

  • 年份区间-年月日(间隔符号可为 - / 或空):/^(?:(?:1[6-9]|[2-9][0-9])[0-9]{2}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:(?:1[6-9]|[2-9][0-9])(?:0[48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)([-/.]?)0?2\2(?:29))$/

编程相关

  • 16进制颜色:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/

  • 提取网页颜色代码:/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/

  • 视频链接地址:/^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4))$/i

  • 图片链接地址:/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i

  • mac 地址:/^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i

  • 子网掩码:/^((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))$/

  • 文件扩展名效验:/^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"|]+\\.txt(l)?$/

  • java包名(x.x.x):/^([a-zA-Z_]\w*)+([.][a-zA-Z_]\w*)+$/

  • xml文件:/^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$/

  • html 注释://g

  • html 标签1:/]*>(.*?)?/

  • html 标签2:/]*>.*?\1>|<.>/

  • 首尾空白字符:/^\s*|\s*$/

  • 查找CSS属性:/^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}/

  • 提取页面超链接:/(]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^" rel="external nofollow" ]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>/

  • 提取网页图片:/\\]*[src] *= *[\\"\\']{0,1}([^\\"\\'\\ >]*)/

  • 迅雷链接:/^thunder:\/\/[a-zA-Z0-9]+=$/

  • ed2k链接:/^ed2k:\/\/|file|.+|\/$/

  • linux"文件"路径:/^\/(\w+\/)+\w+\.\w+$/

  • window下"文件"路径:/^[a-zA-Z]:\\(?:\w+\\)*\w+\.\w+$/

生活相关

  • 金额(宽松,可为负、首位可为0,支持千分位分隔):/^-?\d+(,\d{3})*(\.\d{1,2})?$/

  • 金额(大于 0 ,两位小数):/(^[1-9]{1}[0-9]*$)|(^[0-9]*\.[0-9]{2}$)/

  • 金额(严格,不为负、小数点后最多两位,首位不为0):/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/

  • 护照:/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/

  • 香港身份证:/^[a-zA-Z]\d{6}\([\dA]\)$/

  • 澳门身份证:/^[1|5|7]\d{6}\(\d\)$/

  • 湾湾身份证:/^[a-zA-Z][0-9]{9}$/

  • 股票代码:/^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$/

  • 不含 abc 的单词:/\b((?!abc)\w)+\b/

  • 100.未完待续 ......


小结:

本篇浅浅的整理了一波正则,其中很多本瓜也是边看边学,借助  jex.im/regulex/,太棒了!

如果有补充的,欢迎评论留言,或者有发现错误的,欢迎提出来,马上订正。希望能对你的正则学习、使用有所帮助哈~

原文地址:https://juejin.cn/post/7119242343798013959

更多编程相关知识,请访问:编程教学!!

相关文章

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
AngularJS教程
AngularJS教程

共24课时 | 2.6万人学习

【李炎恢】ThinkPHP8.x 后端框架课程
【李炎恢】ThinkPHP8.x 后端框架课程

共50课时 | 4.4万人学习

Swoft2.x速学之http api篇课程
Swoft2.x速学之http api篇课程

共16课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号