
正则表达式学习路线 | 26 年最新零基础到精通一条龙(万人收藏⭐️)
编程导航学习网站:学编程、做项目、拿 Offer!
企业高频面试题库:开始刷题,面试遇原题!
精选简历模板大全:1 分钟搞定简历!
AI 资源导航网站:获取最新 AI 黑科技!
1 对 1 模拟面试:随时随地提升面试能力
开篇介绍
正则表达式(Regular Expression,简称 Regex 或 RE)是一种用于描述字符串匹配规则的强大工具,广泛应用于文本搜索、内容替换、格式验证、信息提取等场景。几乎所有编程语言都支持正则表达式,无论是 Python、JavaScript、Java、C++,还是命令行工具(grep、sed、awk),正则表达式都是不可或缺的技能。
为什么要学正则表达式?
在实际开发中,我们经常需要处理文本数据,如验证用户输入的手机号、邮箱格式,从日志文件中提取关键信息,批量替换代码中的特定模式等。使用正则表达式,一行代码就能完成原本需要几十行代码才能实现的功能,大大提升开发效率。
正则表达式的学习曲线相对陡峭,语法看起来像乱码,但只要掌握了基本规则和常用模式,就能在各种场景下得心应手地使用。
虽然已经到了 AI 时代,但正则表达式仍然是文本处理的利器,即使有了 AI 辅助工具来生成代码,理解正则表达式的原理也能让你更好地利用这些工具。
正则表达式的使用稍有不当,就有可能造成大 Bug。鱼皮自己的团队就出现过,血泪经验啊!
学习路线图
学习建议
1)边学边练:正则表达式的学习必须结合实践,建议使用在线测试工具,如 在线正则表达式测试,边学边测试。
2)从简单到复杂:不要一开始就学习复杂的正则表达式,先从简单的匹配开始,逐步增加复杂度。
3)理解而不是死记:正则表达式的语法虽然多,但都有其逻辑。要理解每个元字符的含义,而不是死记硬背正则表达式。
4)掌握常用模式:很多场景下的正则表达式是固定的(如邮箱、手机号、URL),可以直接使用现成的正则表达式模板,不需要从零编写。
5)善用 AI 工具:遇到复杂的正则表达式,可以让 AI 工具(如 ChatGPT、豆包等)帮你生成和解释。你可以在鱼皮的 AI 资源大全 中找到很多工具。
阶段 1:基础语法(1-3 天)
知识点
字符匹配【必学】:
- 普通字符:直接匹配,如
abc匹配 "abc" - 特殊字符(元字符):需要转义,如
\.匹配 "."
元字符【必学】:
.:匹配任意单个字符(换行符除外)\d:匹配数字,等价于[0-9]\D:匹配非数字\w:匹配字母、数字、下划线,等价于[A-Za-z0-9_]\W:匹配非字母数字下划线\s:匹配空白字符(空格、制表符、换行符等)\S:匹配非空白字符
数量限定符【必学】:
*:匹配前面的字符 0 次或多次+:匹配前面的字符 1 次或多次?:匹配前面的字符 0 次或 1 次{n}:匹配前面的字符恰好 n 次{n,}:匹配前面的字符至少 n 次{n,m}:匹配前面的字符至少 n 次,至多 m 次
位置匹配【必学】:
^:匹配字符串开始位置$:匹配字符串结束位置\b:匹配单词边界\B:匹配非单词边界
学习资源
- 廖雪峰 - 正则表达式:简洁易懂
- Regex Learn:交互式学习
在线工具
阶段 2:常用模式(1-3 天)
知识点
字符类【必学】:
[abc]:匹配 a、b 或 c[^abc]:匹配除 a、b、c 之外的字符[a-z]:匹配小写字母[A-Z]:匹配大写字母[0-9]:匹配数字
分组和引用【必学】:
(pattern):捕获分组(?:pattern):非捕获分组\1、\2:反向引用,引用第 1、2 个捕获分组
逻辑运算【必学】:
|:或运算,如cat|dog匹配 "cat" 或 "dog"
贪婪和非贪婪【建议学】:
- 贪婪模式(默认):尽可能多地匹配,如
.*会匹配尽可能多的字符 - 非贪婪模式:尽可能少地匹配,在量词后加
?,如.*?会匹配尽可能少的字符
常用正则表达式模板
不用记忆!简单过一遍就好了。
数字验证:
- 整数:
^-?\d+$ - 正整数:
^\d+$ - 浮点数:
^-?\d+\.\d+$
字符串验证:
- 手机号(11 位):
^1[3-9]\d{9}$ - 邮箱:
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ - URL:
^https?://[^\s]+$ - IPv4 地址:
^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$ - 身份证号(18 位):
^\d{17}[\dXx]$
日期验证:
- 日期(YYYY-MM-DD):
^\d{4}-\d{2}-\d{2}$ - 时间(HH:MM:SS):
^\d{2}:\d{2}:\d{2}$
中文字符:
- 中文字符:
[\u4e00-\u9fa5] - 中文字符串:
^[\u4e00-\u9fa5]+$
学习资源
- 常用正则表达式大全:OSChina 整理
阶段 3:高级特性(1-2 天,可选)
知识点
前瞻和后顾【可不学】:
(?=pattern):正向前瞻,匹配后面是 pattern 的位置(?!pattern):负向前瞻,匹配后面不是 pattern 的位置(?<=pattern):正向后顾,匹配前面是 p
