• 常用正则表达式示例


    常用工具

    在线正则表达式可视化
    在线正则表达式测试
    交互式学习正则表达式

    数字校验

    描述正则表达式备注
    数字^[0-9]*$
    n位数字^\d{n}$
    至少n位数字^\d{n,}$
    m~n位数字^\d{m,n}$
    整数^(-?[1-9]\d*)$非0开头,包括正整数和负整数
    正整数^[1-9]\d*$
    负整数^-[1-9]\d*$
    非负整数^(([1-9]\d*)|0)$
    非正整数^((-[1-9]\d*)|0)$
    浮点数^-?(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0\.0+|0)$包括正浮点数和负浮点数
    正浮点数^(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
    负浮点数^-(?:[1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
    非正浮点数^(?:-(?:[1-9]\d*\.\d+|0\.\d*[1-9]\d*)|0\.0+|0)$包含0
    非负浮点数^(?:[1-9]\d*\.\d+|0\.\d+|0\.0+|0)$包含0
    仅一位小数^-?(?:0|[1-9][0-9]*)\.[0-9]{1}$
    最少一位小数^-?(?:0|[1-9][0-9]*)\.[0-9]{1,}$
    最多两位小数^-?(?:0|[1-9][0-9]*)\.[0-9]{1,2}$
    连续重复的数字^(\d)\1+$例如:333444

    字符校验

    描述正则表达式备注
    中文^[\u4E00-\u9FA5]+$
    全角字符^[\uFF00-\uFFFF]+$
    半角字符^[\u0000-\u00FF]+$
    英文字符串(大写)^[A-Z]+$
    英文字符串(小写)^[a-z]+$
    英文字符串(不区分大小写)^[A-Za-z]+$
    中文和数字^(?:[\u4E00-\u9FA5]{0,}|\d)+$
    英文和数字^[A-Za-z0-9]+$
    数字、英文字母或者下划线组成的字符串^\w+$
    中文、英文、数字包括下划线^[\u4E00-\u9FA5\w]+$
    不含字母的字符串^[^A-Za-z]*$
    连续重复的字符串^(.)\1+$例如:ccdd
    长度为n的字符串^.{n}$
    ASCII^[ -~]$

    日期和时间校验

    描述正则表达式备注
    日期^\d{1,4}-(?:1[0-2]|0?[1-9])-(?:0?[1-9]|[1-2]\d|30|31)$弱校验,例如:2022-06-12
    日期^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$严格校验,考虑平闰年
    时间^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$12小时制,例如:11:21:31
    时间^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$24小时制,例如:23:21:31
    日期+时间^(\d{1,4}-(?:1[0-2]|0?[1-9])-(?:0?[1-9]|[1-2]\d|30|31)) ((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d)$例如:2020-11-11 23:20:21

    日常生活相关

    描述正则表达式备注
    中文名^[\u4E00-\u9FA5·]{2,16}$
    英文名^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$
    车牌号^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$不含新能源
    车牌号^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:(?:[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])|(?:(?:\d{5}[A-HJK])|(?:[A-HJK][A-HJ-NP-Z0-9][0-9]{4})))$包含新能源
    火车车次^[GCDZTSPKXLY1-9]\d{1,4}$例如:G1234
    手机号^(?:(?:\+|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,8})(?:-\d+)?$
    手机IMEI码^\d{15,17}$一般是15位
    邮编^(?:0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$例如:211100
    统一社会信用代码^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$
    身份证号码(1代)^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$15位数字
    身份证号码(2代)^[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}[0-9Xx]$18位数字
    QQ号^[1-9][0-9]{4,}$一般是5到10位
    微信号^[a-zA-Z][-_a-zA-Z0-9]{5,19}$一般6~20位,字母开头,可包含字母、数字、-、_,不含特殊字符
    股票代码^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$A股,例如:600519
    银行卡卡号^[1-9]{1}(?:\d{15}|\d{18})$一般为19位

    互联网相关

    描述正则表达式备注
    域名^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$例如:lzltool.com
    网址^(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$例如:http://www.lzltool.com/
    带端口号的网址(或IP)^(?:https?:\/\/)?[\w-]+(?:\.[\w-]+)+:\d{1,5}\/?$例如:http://127.0.0.1:8888/
    URL^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)$例如:http://www.lzltool.com/#/README?id=1
    邮箱email^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$支持中文,例如:xxxxxxxxxx@cs.com
    用户名^[a-zA-Z0-9_-]{4,20}$4到20位
    弱密码^[\w]{6,16}$6~16位,包含大小写字母和数字的组合
    强密码^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@\.#$%^&*? ]).*$至少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
    端口号^(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$例如:65535
    IPv4地址^(?:(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$例如:192.168.31.1
    IPv4地址+端口^(?:(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$例如:192.168.31.1:8080
    IPv6地址^(([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]))$例如:CDCD:910A:2222:5498:8475:1111:3900:2020
    IPv6地址+端口^\[(([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]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$例如:[CDCD:910A:2222:5498:8475:1111:3900:2020]:9800
    子网掩码^(?:254|252|248|240|224|192|128)\.0\.0\.0|255\.(?:254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(?:254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(?:255|254|252|248|240|224|192|128|0)$例如:255.255.255.0
    MAC地址^(?:(?:[a-f0-9A-F]{2}:){5}|(?:[a-f0-9A-F]{2}-){5})[a-f0-9A-F]{2}$
    Version版本号^\d+(?:\.\d+){2}$例如:12.1.1
    图片后缀\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)+可按需增删扩展名集合
    视频后缀\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4)+可按需增删扩展名集合
    图片链接(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)可按需增删扩展名集合
    视频链接(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4)可按需增删扩展名集合
    迅雷链接thunderx?:\/\/[a-zA-Z\d]+=
    ed2k链接ed2k:\/\/\|file\|.+\|\/
    磁力链接magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*

    其他

    描述正则表达式备注
    MD5格式^(?:[a-f\d]{32}|[A-F\d]{32})$32位MD5,例如:7552E7071B118CBFFEC8C930455B4297
    BASE64格式^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$例如:data:image/jpeg;base64,xxxx==
    UUID^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$例如:94f9d45a-71b0-4b3c-b69d-20c4bc9c8fdd
    16进制^[A-Fa-f0-9]+$例如:FFFFFF
    16进制颜色^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$例如:#FFFFFF
    SQL语句^(?:select|drop|delete|create|update|insert).*$
    Java包名^(?:[a-zA-Z_]\w*)+(?:[.][a-zA-Z_]\w*)+$例如:com.lzltool.controller
    文件扩展名\.(?:doc|pdf|txt)可按需增删扩展名集合
    Windows文件路径^[a-zA-Z]:(?:\\[\w\u4E00-\u9FA5\s]+)+[.\w\u4E00-\u9FA5\s]+$例如:C:\Users\Administrator\Desktop\a.txt
    Windows文件夹路径^[a-zA-Z]:(?:\\[\w\u4E00-\u9FA5\s]+)+$例如:C:\Users\Administrator\Desktop
    Linux文件路径^\/(?:[^/]+\/)*[^/]+$例如:/root/library/a.txt
    Linux文件夹路径^\/(?:[^/]+\/)*$例如:/root/library/
  • 相关阅读:
    Hadoop、Spark、Storm、Flink区别及选择
    数据挖掘实践(金融风控):金融风控之贷款违约预测挑战赛(上篇)[xgboots/lightgbm/Catboost等模型]--模型融合:stacking、blending
    c#构建具有用户认证与管理的socks5代理服务端
    pip快速安装torch、opencv、scipy库
    成功案例 | 安超云助力兰州大学第二医院搭建新型IT基础设施平台 提升医疗信息资源利用率
    Java集合面试题
    fastjson值java对象与JSON串互转
    Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)
    面试金典--面试题 17.21. 直方图的水量(不困难的困难题)
    【Linux文件篇】磁盘到用户空间:Linux文件系统架构全景
  • 原文地址:https://blog.csdn.net/weixin_43251547/article/details/126515585