正则表达式学习路线 | 26 年最新零基础到精通一条龙(万人收藏⭐️)PDF下载

正则表达式学习路线 | 26 年最新零基础到精通一条龙(万人收藏⭐️)

by 编程导航 下载量 10
学习正则表达式应从基础语法入手,掌握字符匹配、元字符(如`.`、`\d`、`\w`、`\s`)、数量限定符(`*`、`+`、`?`、`{n,m}`)以及位置匹配(`^`、`$`、`\b`)。随后进入常用模式阶段,学习字符类(`[abc]`、`[^abc]`)、分组与捕获(`(pattern)`、`(...

编程导航学习网站:学编程、做项目、拿 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:匹配非单词边界

学习资源

在线工具

阶段 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]+$

学习资源

阶段 3:高级特性(1-2 天,可选)

知识点

前瞻和后顾【可不学】:

  • (?=pattern):正向前瞻,匹配后面是 pattern 的位置
  • (?!pattern):负向前瞻,匹配后面不是 pattern 的位置
  • (?<=pattern):正向后顾,匹配前面是 p
下载 APP