01-元字符:如何巧妙记忆正则表达式的基本元件?
你好,我是悦创。
今天正式开启我们的正则表达式课程。第一讲,我们要从“正则的基石”——元字符讲起。别小看它,所有复杂的正则技巧,最终都是从这些小符号组合起来的。
1. 元字符是什么?
在开篇词里我提到过,正则表达式常见的三大用途:
- 检查数据是否符合规则(比如邮箱、手机号校验);
- 查找符合要求的文本;
- 对文本进行分割、替换。
你可能会想:正则是怎么做到这些操作的呢?
先别急,我们从熟悉的场景入手。
在 Word、Excel 里,你肯定用过“查找/替换”功能。输入一个词,它就能帮你找到,甚至一键替换掉。
这和正则的思想很像。但不同的是:正则不只是找具体的文字,还能找“符合某种规律的内容”。
举个例子:
- 如果你想在文档里找所有数字,不会正则时,可能要一个个输入 0、1、2…9 去搜,很麻烦。
- 用正则,只要一个
\d
,就能搞定!\d
就代表 0-9 的任意一个数字。
更神奇的是,加上量词后还能控制次数:
比如 \d{11}
表示连续的 11 个数字,也就是一个手机号。
这就是正则的魅力所在:靠一些特殊符号(元字符),就能描述复杂的文本规则。
👉 所以,元字符就是正则的“字母表”,是所有规则的基本单位。
2. 元字符怎么分类记忆?
元字符种类很多,背死记硬背真的痛苦。
我的建议是:分类记忆。这样更有体系感,学习效率也更高。
常见分类大致有这几种:
- 特殊单字符
- 空白符
- 量词(次数相关)
- 范围(多选一 / 限定)
- 断言(边界判断,后面章节会讲)
下面我们逐个拆解。
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
→ 能同时匹配color
和colour
\d+
→ 至少一个数字\d*
→ 可能没有,也可能有多个数字
在线测试:https://regex101.com/r/PnzZ4k/8
2.4 范围(集合匹配)
当我们需要“在某一类字符里任选”时,就用范围。
[]
:中括号内多选一[aeiou]
→ 任意元音字母[a-z]
→ 任意小写字母[^0-9]
→ 不是数字
|
:或运算ab|bc
→ 匹配ab
或bc
- 组合:
(https?|ftp)://
→ 匹配http://
、https://
或ftp://
在线测试:https://regex101.com/r/PnzZ4k/5
3. 小结
今天我们认识了正则的“字母表”——元字符。内容包括:
- 特殊单字符(
\d
、\w
、.
等) - 空白符(
\s
、\n
、\t
等) - 量词(
*
、+
、?
、{m,n}
) - 范围(
[]
、|
、[^ ]
等)
这些是正则的入门必修课,掌握它们之后,你就能写出很多实用的正则了。
学习建议:
- 多练习!光看不敲,记不住。
- 把学到的知识讲给别人,这是最好的自测方法。
最后附一张总结思维导图,方便复习:
4. 思考题
来做一个练习题吧👇
📱 手机号规则:
- 第 1 位固定为 1;
- 第 2 位为 3-9;
- 后面 9 位为 0-9 任意数字;
请你用今天学到的元字符写一个正则,准确匹配手机号。
把答案写在评论区,一起讨论交流!
今天的课程就到这里啦,希望你能真正掌握元字符,并开始体会到正则表达式的威力。🚀