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 任意数字

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

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


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

相关推荐
!win !6 小时前
分享二个实用正则
javascript·正则表达式
xw56 小时前
分享二个实用正则
javascript·正则表达式
刺客-Andy12 小时前
Python 第二十节 正则表达式使用详解及注意事项
python·mysql·正则表达式
好好好起个名真难14 小时前
正则表达式
正则表达式
坚持就完事了1 天前
正则表达式与Python的re模块
python·正则表达式
前端小L4 天前
动态规划:驯服正则表达式的*号魔王
正则表达式
九皇叔叔5 天前
Linux Shell 正则表达式中的 POSIX 字符集:用法与实战
linux·运维·正则表达式
m0_64880493_江哥6 天前
用正则方法从中英文本提取英文的python示例
python·mysql·正则表达式
九皇叔叔6 天前
Linux Shell 正则表达式:从入门到实战,玩转文本匹配与处理
linux·mysql·正则表达式
一百天成为python专家7 天前
python爬虫入门(小白五分钟从入门到精通)
开发语言·爬虫·python·opencv·yolo·计算机视觉·正则表达式