基础正则表达式速查表

转载:Road 2 Coding

正则基础构成

字符

表达式 描述
[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]*$  
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)$  
仅一位小数 ^-?(?: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]{0,}|\d)+$  
英文和数字 ^[A-Za-z0-9]+$  
数字、英文字母或者下划线组成的字符串 ^\w+$  
中文、英文、数字包括下划线 ^[\u4E00-\u9FA5\w]+$  
不含字母的字符串 ^[^A-Za-z]*$  
连续重复的字符串 ^(.)\1+$ 例如:aaabbb
长度为n的字符串 ^.{n}$  

日期和时间

描述 正则表达式 备注
日期 ^\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)$ 例如:2000-11-11 23:20:21

其他

描述 正则表达式 备注
中文名 ^[\u4E00-\u9FA5·]{2,16}$  
英文名 ^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$  
手机号 ^(?:(?:\+|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+)?$  
✈ 最后更新: 2022-08-24
  • Copyrights © 2020-2024 w _ k
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信