正则表达式速查表

基础正则表达式速查表

字符

正则表达式 功能描述
[abc] 字符集;匹配集合中所含的任一字符。
[^abc] 否定字符集;匹配任何不在集合中的字符。
[a-z] 字符范围;匹配指定范围内的任意字符。
. 匹配除换行符以外的任何单个字符。
\ 转义字符。
\w 匹配任何字母数字,包括下划线(等价于[A-Za-z0-9_])。
\W 匹配任何非字母数字(等价于[^A-Za-z0-9_])。
\d 数字;匹配任何数字。
\D 非数字;匹配任何非数字字符。
\s 空白;匹配任何空白字符,包括空格、制表符等。
\S 非空白;匹配任何非空白字符。

分组和引用

正则表达式 功能描述
(expression) 分组;匹配括号里的整个表达式。
(?:expression) 非捕获分组;匹配括号里的整个字符串但不获取匹配结果,拿不到分组引用。
\num 对前面所匹配分组的引用;比如(\d)\1可以匹配两个相同的数字,(Code)(Sheep)\1\2则可以匹配CodeSheepCodeSheep

锚点 / 边界

正则表达式 功能描述
^ 匹配字符串或行开头。
$ 匹配字符串或行结尾。
\b 匹配单词边界;比如Sheep\b可以匹配CodeSheep末尾的Sheep,不能匹配CodeSheepCode中的Sheep
\B 匹配非单词边界;比如Code\B可以匹配HelloCodeSheep中的Code,不能匹配HelloCode中的Code

数量表示

正则表达式 功能描述
? 匹配前面的表达式0个或1个;即表示可选项。
+ 匹配前面的表达式至少1个。
* 匹配前面的表达式0个或多个。
` `
{m} 匹配前面的表达式m个。
{m,} 匹配前面的表达式最少m个。
{m,n} 匹配前面的表达式最少m个,最多n个。

预查断言

正则表达式 功能描述
(?=) 正向预查;比如Code(?=Sheep)能匹配CodeSheep中的Code,但不能匹配CodePig中的Code
(?!) 正向否定预查;比如Code(?!Sheep)不能匹配CodeSheep中的Code,但能匹配CodePig中的Code
(?<=) 反向预查;比如(?<=Code)Sheep能匹配CodeSheep中的Sheep,但不能匹配ReadSheep中的Sheep
(?<!) 反向否定预查;比如(?<!Code)Sheep不能匹配CodeSheep中的Sheep,但能匹配ReadSheep中的Sheep

特殊字符

正则表达式 功能描述
/.../i 忽略大小写。
/.../g 全局匹配。
/.../m 多行修饰符;用于多行匹配。

常用正则表达式示例

数字校验

正则表达式 功能描述 备注
^[0-9]*$ 数字
^\d{n}$ n位数字
^\d{n,}$ 至少n位数字
^\d{m,n}$ 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+
`^(?:[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+
`^(?:[1-9]\d*.\d+ 0.\d+ 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+$ 连续重复的数字 例如:111222

字符校验

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

日期和时间校验

正则表达式 功能描述 备注
`^\d{1,4}-(?:1[0-2] 0?[1-9])-(?:0?[1-9] [1-2]\d
`^(?😦?!0000)[0-9]{4}-(?😦?:0[1-9] 1[0-2])-(?:0[1-9] 1[0-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] [1-2]\d

日常生活相关

正则表达式 功能描述 备注
^[\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]) (?:[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])
`^(?😦?:\d{3}-)?\d ^(?:\d{4}-)?\d{7,8})(?:-\d+)?$` 固话号码
^\d{15,17}$ 手机IMEI码 一般是15位
`^(?:0[1-7] 1[0-356] 2[0-7]
^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$ 统一社会信用代码
`[2]\d{7}(?:0\d 10 11
`[3]\d{5}(?:18 19 20)\d{2}(?:0[1-9]
^[1-9][0-9]{4,}$ QQ号 一般是5到10位
^[a-zA-Z][-_a-zA-Z0-9]{5,19}$ 微信号 一般6~20位,字母开头,可包含字母、数字、-、_,不含特殊字符
`^(s[hz] S[HZ])(000[\d] 002[\d]
`[4]{1}(?:\d \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/
^(?:https?:\/\/)?[\w-]+(?:\.[\w-]+)+:\d{1,5}\/?$ 带端口号的网址(或IP) 例如:http://127.0.0.1:8888/
^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)$ URL 例如:https://www.r2coding.com/#/README?id=1
^[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})+$ 邮箱email 支持中文,例如: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-5][0-9]
`^(?😦?:\d [1-9]\d 1\d\d
`^(?😦?:\d [1-9]\d 1\d\d
`^(([0-9a-fA-F]{1,4}😃{7,7}[0-9a-fA-F] ([0-9a-fA-F]{1,4}😃{1,7}: ([0-9a-fA-F]{1,4}😃{1,6}:[0-9a-fA-F]
`^[(([0-9a-fA-F]{1,4}😃{7,7}[0-9a-fA-F] ([0-9a-fA-F]{1,4}😃{1,7}: ([0-9a-fA-F]{1,4}😃{1,6}:[0-9a-fA-F]
`^(?:254 252 248
`^(?😦?:[a-f0-9A-F]{2}😃 (?:[a-f0-9A-F]{2}-){5})[a-f0-9A-F]{2}$` MAC地址
^\d+(?:\.\d+){2}$ Version版本号 例如:12.1.1
`.(gif png jpg
`.(swf avi flv
`(?:https?😕/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+.(gif png jpg
`(?:https?😕/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+.(swf avi flv
thunderx?:\/\/[a-zA-Z\d]+= 迅雷链接
ed2k:\/\/|file|.+|\/ ed2k链接
magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.* 磁力链接

其他

正则表达式 功能描述 备注
`^(?:[a-f\d] [A-F\d]{32})$` MD5格式
^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$ BASE64格式 例如:data:image/jpeg;base64,xxxx==
^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$ UUID 例如:94f9d45a-71b0-4b3c-b69d-20c4bc9c8fdd
^[A-Fa-f0-9]+$ 16进制 例如:FFFFFF
`^#?([0-9a-fA-F] [0-9a-fA-F]{6})$` 16进制颜色
`^(?:select drop delete
^(?:[a-zA-Z_]\w*)+(?:[.][a-zA-Z_]\w*)+$ Java包名 例如:com.r2coding.controller
`.(?:doc pdf txt)`
^[a-zA-Z]:(?:\\[\w\u4E00-\u9FA5\s]+)+[.\w\u4E00-\u9FA5\s]+$ Windows文件路径 例如:C:\Users\Administrator\Desktop\a.txt
^[a-zA-Z]:(?:\\[\w\u4E00-\u9FA5\s]+)+$ Windows文件夹路径 例如:C:\Users\Administrator\Desktop
^\/(?:[^/]+\/)*[^/]+$ Linux文件路径 例如:/root/library/a.txt
^\/(?:[^/]+\/)*$ Linux文件夹路径 例如:/root/library/

  1. 京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 ↩︎

  2. 1-9 ↩︎

  3. 1-9 ↩︎

  4. 1-9 ↩︎

posted @ 2022-11-16 14:30  余生&安好  阅读(148)  评论(0编辑  收藏  举报