常用正则
参考耗时一周,我打造了一个正则表达式学习神器!_哔哩哔哩_bilibili
史上最全常用正则表达式大全 - fozero - 博客园 (cnblogs.com)
在开发过程中, 经常需要使用校验, 每次搜索正则表达式非常浪费时间并且不靠谱, 从b站up主CodeSheep 处找到了常用正则总结, 在此保存方便以后查找。
在线测试正则表达式 : 正则表达式在线测试 | 菜鸟工具 (runoob.com)
数字校验
描述 | 正则表达式 | 备注 |
---|---|---|
数字 | ^[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* |
正浮点数 | `^(?:[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*) |
非负浮点数 | `^(?:[1-9]\d*.\d+ | 0.\d+ |
仅一位小数 | `^-?(?: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+$ |
例如:111 ,222 |
字符校验
描述 | 正则表达式 | 备注 |
---|---|---|
中文 | ^[\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+$ |
例如:aaa ,bbb |
长度为n的字符串 | ^.{n}$ |
|
ASCII | ^[ -~]$ |
日期和时间校验
描述 | 正则表达式 | 备注 |
---|---|---|
日期 | `^\d{1,4}-(?:1[0-2] | 0?[1-9])-(?:0?[1-9] |
日期 | `^(?😦?!0000)[0-9]{4}-(?😦?:0[1-9] | 1[0-2])-(?:0[1-9] |
时间 | `^(?:1[0-2] | 0?[1-9]):[0-5]\d:[0-5]\d$` |
时间 | `^(?:[01]\d | 2[0-3]):[0-5]\d:[0-5]\d$` |
日期+时间 | `^(\d{1,4}-(?:1[0-2] | 0?[1-9])-(?:0?[1-9] |
日常生活
描述 | 正则表达式 | 备注 |
---|---|---|
中文名 | ^[\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挂学警港澳]$ |
不含新能源 |
车牌号 | `[1][A-HJ-NP-Z](?😦?:[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]) | (?😦?:\d{5}[A-HJK]) |
火车车次 | ^[GCDZTSPKXLY1-9]\d{1,4}$ |
例如:G1234 |
手机号 | `^(?😦?:+ | 00)86)?1[3-9]\d{9}$` |
手机号 | `^(?😦?:+ | 00)86)?1(?😦?:3[\d]) |
固话号码 | `^(?😦?:\d{3}-)?\d{8} | ^(?:\d{4}-)?\d{7,8})(?:-\d+)?$` |
手机IMEI码 | ^\d{15,17}$ |
一般是15位 |
邮编 | `^(?:0[1-7] | 1[0-356] |
统一社会信用代码 | ^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$ |
|
身份证号码(1代) | `[2]\d{7}(?:0\d | 10 |
身份证号码(2代) | `[3]\d{5}(?:18 | 19 |
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} |
银行卡卡号 | `[4]{1}(?:\d{15} | \d{18})$` |
互联网相关
描述 | 正则表达式 | 备注 |
---|---|---|
域名 | ^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ |
例如:r2coding.com |
网址 | ^(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ |
例如:https://www.r2coding.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()!@:%_\+.~#?&\/\/=]*)$ |
例如:https://www.r2coding.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})+$ |
支持中文,例如:codesheep@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} |
IPv4地址 | `^(?😦?:\d | [1-9]\d |
IPv4地址+端口 | `^(?😦?:\d | [1-9]\d |
IPv6地址 | `^(([0-9a-fA-F]{1,4}😃{7,7}[0-9a-fA-F]{1,4} | ([0-9a-fA-F]{1,4}😃{1,7}: |
IPv6地址+端口 | `^[(([0-9a-fA-F]{1,4}😃{7,7}[0-9a-fA-F]{1,4} | ([0-9a-fA-F]{1,4}😃{1,7}: |
子网掩码 | `^(?:254 | 252 |
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 |
视频后缀 | `.(swf | avi |
图片链接 | `(?:https?😕/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+.(gif | png |
视频链接 | `(?:https?😕/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+.(swf | avi |
迅雷链接 | thunderx?:\/\/[a-zA-Z\d]+= |
|
ed2k链接 | ed2k:\/\/|file|.+|\/ |
|
磁力链接 | magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.* |
其他
描述 | 正则表达式 | 备注 |
---|---|---|
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/ |
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*$ |
例如: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})$` |
SQL语句 | `^(?:select | drop |
Java包名 | ^(?:[a-zA-Z_]\w*)+(?:[.][a-zA-Z_]\w*)+$ |
例如:com.r2coding.controller |
文件扩展名 | `.(?:doc | |
HTML标签 | <(\w+)[^>]*>(.*?<\/\1>)? |
例如:<div class="navigator"></div> |
HTML注释 | <!--(.*?)--> |
例如:<!--注释--> |
示例
RegexPatterns.java
1 | public abstract class RegexPatterns { |
RegexUtils.java
1 | public class RegexUtils { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 dhx_'blog!
评论