Z
ZHANK
🔍

正则表达式速查表

正则元字符、量词、分组、断言、标志、常用正则表达式速查

正则表达式速查表

元字符

.       任意字符(除换行)
\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)