🔍
正则表达式速查表
正则元字符、量词、分组、断言、标志、常用正则表达式速查
正则表达式速查表
元字符
. 任意字符(除换行)
\d 数字 [0-9]
\D 非数字
\w 单词字符 [a-zA-Z0-9_]
\W 非单词字符
\s 空白字符(空格、Tab、换行)
\S 非空白字符
\n 换行
\t 制表符
\\ 反斜杠本身量词
* 0 次或多次 {0,}
+ 1 次或多次 {1,}
? 0 次或 1 次 {0,1}
{3} 恰好 3 次
{3,} 至少 3 次
{3,6} 3 到 6 次字符类
[abc] a、b 或 c
[^abc] 除了 a、b、c 的任何字符
[a-z] a 到 z 的小写字母
[A-Z] A 到 Z 的大写字母
[0-9] 数字 0-9
[a-zA-Z] 所有字母锚点
^ 字符串开头
$ 字符串结尾
\b 单词边界
\B 非单词边界分组与引用
(abc) 捕获组
(?:abc) 非捕获组
\1 引用第一个捕获组
(?) 命名捕获组 断言(环视)
(?=...) 正向前瞻——后面是...
(?!...) 负向前瞻——后面不是...
(?<=...) 正向后顾——前面是...
(?标志
i 忽略大小写
g 全局匹配
m 多行模式(^$ 匹配每行开头结尾)
s 点号匹配换行符
u Unicode 模式常用正则
// 邮箱
/^[^\s@]+@[^\s@]+\.[^\s@]+$/
// 手机号(中国)
/^1[3-9]\d{9}$/
// URL
/^https?:\/\/[^\s/$.?#].[^\s]*$/
// 身份证(中国)
/^\d{17}[\dXx]$/
// IP 地址
/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/
// 日期 YYYY-MM-DD
/^\d{4}-\d{2}-\d{2}$/
// 中文
/[\u4e00-\u9fa5]/
// 提取 HTML 标签
/<[^>]+>/g
// 首尾空格
/^\s+|\s+$/g
// 密码(8-20位,含大小写字母+数字)
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,20}$/JavaScript 中使用
// 测试
/pattern/.test(str) // true/false
// 匹配
str.match(/pattern/g) // 返回匹配数组
str.match(/pattern/) // 返回详细信息
// 搜索
str.search(/pattern/) // 返回位置(-1 未找到)
// 替换
str.replace(/pattern/g, "replacement")
str.replace(/(\w+) (\w+)/, "$2 $1") // 交换单词
// 分割
str.split(/\s+/) // 按空白分割
// 全局匹配迭代
const matches = str.matchAll(/pattern/g)