← 返回首页 📖 工具指南

正则表达式入门与实战指南

发布日期:2026年5月28日 | 阅读时间:8分钟

正则表达式(Regular Expression,简称 Regex 或 RegExp)是处理文本的强大工具。无论是数据验证、文本提取还是批量替换,正则表达式都能高效完成任务。本文将从基础语法讲起,结合实际案例,帮助您掌握这一核心技能。

为什么学习正则表达式?

正则表达式在以下场景中非常有用:

基础语法

1. 字符匹配

模式说明示例
.匹配任意单个字符(除换行符)a.c 匹配 "abc", "a1c"
\d匹配数字 [0-9]\d\d 匹配 "12", "34"
\w匹配字母、数字、下划线\w+ 匹配 "hello_123"
\s匹配空白字符a\sb 匹配 "a b"

2. 量词

量词说明示例
*匹配 0 次或多次ab*c 匹配 "ac", "abc", "abbc"
+匹配 1 次或多次ab+c 匹配 "abc", "abbc"(不匹配 "ac")
?匹配 0 次或 1 次colou?r 匹配 "color", "colour"
{n}匹配恰好 n 次\d{3} 匹配 "123"
{n,m}匹配 n 到 m 次\d{2,4} 匹配 "12", "1234"

3. 位置锚点

锚点说明示例
^匹配字符串开头^Hello 匹配以 "Hello" 开头的字符串
$匹配字符串结尾world$ 匹配以 "world" 结尾的字符串
\b匹配单词边界\bword\b 匹配完整的单词 "word"

常用正则表达式模板

邮箱验证

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

说明:匹配标准邮箱格式,如 user@example.com

手机号验证(中国大陆)

^1[3-9]\d{9}$

说明:匹配以 1 开头,第二位是 3-9,后面跟着 9 位数字

URL 提取

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)

说明:匹配 http 或 https 开头的 URL

HTML 标签提取

<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)

说明:匹配完整的 HTML 标签及其内容

标志(Flags)

标志说明示例
g全局匹配(找到所有匹配项)/hello/g
i忽略大小写/hello/i 匹配 "Hello", "HELLO"
m多行模式^hello/m 匹配每行开头的 "hello"
s点号匹配换行符/a.b/s 匹配 "a\nb"

实战案例

案例 1:提取字符串中的所有数字

const text = "价格是 123 元,数量 45 个";
const numbers = text.match(/\d+/g);
// 结果: ["123", "45"]

案例 2:验证密码强度

// 至少8位,包含大小写字母和数字
const strongPassword = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/;
strongPassword.test("MyPass123"); // true
strongPassword.test("weak"); // false

案例 3:清理 HTML 标签

const html = "<p>Hello <b>World</b></p>";
const text = html.replace(/<[^>]*>/g, '');
// 结果: "Hello World"

使用我们的正则测试器

我们的在线正则表达式测试器提供以下功能:

学习建议

本文最后更新于 2026年5月28日