01-元字符:如何巧妙记忆正则表达式的基本元件?

你好,我是悦创。

今天正式开启我们的正则表达式课程。第一讲,我们要从"正则的基石"------元字符讲起。别小看它,所有复杂的正则技巧,最终都是从这些小符号组合起来的。


1. 元字符是什么?

在开篇词里我提到过,正则表达式常见的三大用途:

  • 检查数据是否符合规则(比如邮箱、手机号校验);
  • 查找符合要求的文本;
  • 对文本进行分割、替换。

你可能会想:正则是怎么做到这些操作的呢?

先别急,我们从熟悉的场景入手。

在 Word、Excel 里,你肯定用过"查找/替换"功能。输入一个词,它就能帮你找到,甚至一键替换掉。

这和正则的思想很像。但不同的是:正则不只是找具体的文字,还能找"符合某种规律的内容"。

举个例子:

  • 如果你想在文档里找所有数字,不会正则时,可能要一个个输入 0、1、2...9 去搜,很麻烦。
  • 用正则,只要一个 \d,就能搞定!\d 就代表 0-9 的任意一个数字。

更神奇的是,加上量词后还能控制次数:

比如 \d{11} 表示连续的 11 个数字,也就是一个手机号。

这就是正则的魅力所在:靠一些特殊符号(元字符),就能描述复杂的文本规则。

👉 所以,元字符就是正则的"字母表",是所有规则的基本单位。


2. 元字符怎么分类记忆?

元字符种类很多,背死记硬背真的痛苦。

我的建议是:分类记忆。这样更有体系感,学习效率也更高。

常见分类大致有这几种:

  1. 特殊单字符
  2. 空白符
  3. 量词(次数相关)
  4. 范围(多选一 / 限定)
  5. 断言(边界判断,后面章节会讲)

下面我们逐个拆解。


2.1 特殊单字符

几个常见的元字符:

  • . :任意单个字符(除了换行)
  • \d :任意数字 0-9
  • \w :字母、数字或下划线
  • \s :任意空白符(空格、换行、Tab)
  • 反义形式:\D(非数字)、\W(非字母数字下划线)、\S(非空白)

测试一下:
\d 只能匹配数字 → 在线测试链接
\w 匹配字母数字下划线 → 在线测试链接


2.2 空白符

处理文本时经常会遇到:空格、换行、制表符。

在正则里常用写法有:

  • \n → 换行符
  • \t → Tab 制表符
  • \r → 回车(Windows 的换行是 \r\n,Linux/Mac 只有 \n
  • \s → 匹配任意单个空白符(最常用!)

2.3 量词(次数限定)

只匹配一个字符太弱了。更多时候,我们需要控制"重复次数"。

量词就是干这个的:

  • * :0 次或多次
  • + :1 次或多次
  • ? :0 次或 1 次
  • {m,n} :m 到 n 次

举个例子:

  • colou?r → 能同时匹配 colorcolour
  • \d+ → 至少一个数字
  • \d* → 可能没有,也可能有多个数字

在线测试:https://regex101.com/r/PnzZ4k/8


2.4 范围(集合匹配)

当我们需要"在某一类字符里任选"时,就用范围。

  • [] :中括号内多选一
    • [aeiou] → 任意元音字母
    • [a-z] → 任意小写字母
    • [^0-9] → 不是数字
  • | :或运算
    • ab|bc → 匹配 abbc
  • 组合:
    • (https?|ftp):// → 匹配 http://https://ftp://

在线测试:https://regex101.com/r/PnzZ4k/5


3. 小结

今天我们认识了正则的"字母表"------元字符。内容包括:

  • 特殊单字符(\d\w. 等)
  • 空白符(\s\n\t 等)
  • 量词(*+?{m,n}
  • 范围([]|[^ ] 等)

这些是正则的入门必修课,掌握它们之后,你就能写出很多实用的正则了。

学习建议:

  1. 多练习!光看不敲,记不住。
  2. 把学到的知识讲给别人,这是最好的自测方法。

最后附一张总结思维导图,方便复习:


4. 思考题

来做一个练习题吧👇

📱 手机号规则:

  1. 第 1 位固定为 1
  2. 第 2 位为 3-9
  3. 后面 9 位为 0-9 任意数字

请你用今天学到的元字符写一个正则,准确匹配手机号。

把答案写在评论区,一起讨论交流!


今天的课程就到这里啦,希望你能真正掌握元字符,并开始体会到正则表达式的威力。🚀

相关推荐
課代表1 天前
Acrobat DC 文本域表单验证中的 js 使用
javascript·正则表达式·表单验证·数据完整性·字段验证·事件对象·自定义验证
风语者6664 天前
perl踩坑系列===正则表达式第2坑---split中的“或”操作符
开发语言·正则表达式·perl
AI悦创|编程1v15 天前
用户研究:用户研究和数据分析的根本联系与区别
数据挖掘·数据分析·ai悦创编程一对一教学·python一对一辅导·python一对一教学
AI悦创|编程1v16 天前
00-为什么要系统学习正则表达式?
学习·正则表达式·python一对一辅导·python一对一教学
叫我詹躲躲7 天前
别再手写正则了!20 + 证件 / 手机号 / 邮箱验证函数,直接复制能用
前端·javascript·正则表达式
Moonbit8 天前
MoonBit Pearls Vol.9:正则表达式引擎的两种实现方法:导数与 Thompson 虚拟机
后端·正则表达式·编程语言
半梦半醒*18 天前
正则表达式
linux·运维·开发语言·正则表达式·centos·运维开发
PyHaVolask18 天前
Python进阶教程:随机数、正则表达式与异常处理
python·正则表达式·异常处理·随机数生成
神秘人X70719 天前
正则表达式笔记
正则表达式·shell·脚本