正则表达式入门:10 分钟学会 RegExp(2026)

什么是正则表达式

正则表达式(Regular Expression,简称 regex 或 regexp)是一种用来匹配字符串的强大工具。它用一套特殊的字符描述「我要找什么样的文本」。

✍️ 作者:DevToolbox 技术团队📅 更新于:2026-06-24📎 引用:RFC Standards

📌 本文关键结论(TL;DR)

✍️ 作者:DevToolbox 技术团队📅 更新于:2026-06-24📎 引用:RFC Standards

📌 本文关键结论(TL;DR)

无论是验证邮箱、提取日志、批量重命名文件,正则都是程序员的瑞士军刀。

10 个最常用的正则模式

下面 10 个例子覆盖了 80% 的日常使用场景。

基础元字符

1. \d 匹配数字(等价于 [0-9])

2. \w 匹配字母数字下划线(等价于 [a-zA-Z0-9_])

3. \s 匹配空白字符(空格、Tab、换行)

4. . 匹配任意单个字符(除换行外)

5. ^ 匹配字符串开头

6. $ 匹配字符串结尾

量词

7. * 0 次或多次

8. + 1 次或多次

9. ? 0 次或 1 次

10. {n,m} n 到 m 次

实战例子

匹配邮箱:^[\w.+-]+@[\w-]+\.[\w.-]+$

匹配手机号(中国大陆):^1[3-9]\d{9}$

匹配 URL:^https?://[\w.-]+(/[\w./?=&%-]*)?$

匹配 IPv4:^(\d{1,3}\.){3}\d{1,3}$

提取数字:\d+

匹配日期(YYYY-MM-DD):^\d{4}-\d{2}-\d{2}$

匹配身份证号(18 位):^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$

替换多余空格:\s+ 替换为单个空格

DevToolbox 在线测试

学正则最快的办法是边写边测。DevToolbox 提供实时的正则测试器,匹配结果高亮显示:

https://devstoolbox.net/tools/regex-tester.html

支持 JavaScript 全部标志:g(全局)、i(忽略大小写)、m(多行)、s(dotAll)、u(Unicode)、y(sticky)。

常见问题

Q1: 正则难学吗?

A: 入门 10 分钟,深入 10 年。日常使用掌握基础元字符 + 量词足够。

 

Q2: Python 和 JavaScript 正则一样吗?

A: 大部分语法相同,少数高级特性有差异。

 

Q3: 怎么调试正则?

A: 用 DevToolbox 正则测试器实时高亮。

 

Q4: 性能差怎么办?

A: 避免灾难性回溯(如 (a+)+ 改成 a+),用非贪婪量词(*?、+?)。

 

Q5: 命名捕获组怎么用?

A: (?...) 定义,\k 反向引用。

相关工具

正则测试器:https://devstoolbox.net/tools/regex-tester.html

JSON 格式化(常用于解析日志):https://devstoolbox.net/tools/json-formatter.html

文本去重:https://devstoolbox.net/tools/text-dedupe.html

本文由 DevToolbox 提供。试试我们的免费工具:https://devstoolbox.net

🔗 分享: 𝕏 📘 ✈️ 💬

八、常见问题 FAQ

Q: 正则表达式是什么?

正则表达式(Regular Expression)是用特定符号描述字符串模式的工具,用于匹配、查找、替换文本。例如 `/\d+/` 匹配一个或多个数字。

Q: 正则表达式难学吗?

入门只需 30 分钟。掌握元字符(. * + ? \d \w \s)、字符集([abc])、锚点(^ $)、分组(())就够了。复杂场景需要实战积累。

Q: 贪婪匹配和非贪婪匹配有什么区别?

贪婪匹配(默认)尽可能多地匹配字符,如 `/<.*>/` 匹配 `<b>hello</b>` 整段;非贪婪匹配(在量词后加 ?)尽可能少地匹配,如 `/<.*?>/` 只匹配 `<b>` 和 `</b>`。

Q: 正则表达式和通配符有什么区别?

通配符是 shell 用的简单模式(如 `*.txt`),正则表达式是功能更强大的字符串匹配语言,两者语法和用途都不同。

🧰
添加到主屏幕
离线也能用,秒开不等待