首页 / 教程文章 / 正则表达式入门:10 个最常用的元字符和实战例子

正则表达式入门:10 个最常用的元字符和实战例子

发布于 2026-08-18 10:58:23 · 8 阅读 · 标签:正则表达式,regex,教程,入门

正则表达式(Regular Expression)是处理文本的瑞士军刀,但那一串符号劝退了不少人。其实 80% 的日常需求,只用到 10 个元字符。本文用最多的例子把这 10 个讲透。

一、正则到底是什么

正则表达式是一种用符号描述文本模式的语言。比如「3 位数字 - 4 位数字」的电话格式,用正则写就是 \d{3}-\d{4}。它做的事就两件:匹配(判断文本是否符合模式)和提取/替换(把符合模式的部分找出来)。

二、10 个最常用元字符

1. . 任意单个字符

匹配除换行符外的任意一个字符。a.c 能匹配 abca1ca c

2. \d 数字

等价于 [0-9]\d\d\d 匹配任意三位数字,如 138

3. \w 单词字符

字母、数字、下划线,等价于 [A-Za-z0-9_]。匹配用户名、变量名常用。

4. \s 空白字符

空格、制表符 Tab、换行符。处理有多余空白的文本时用。

5. [...] 字符集

匹配方括号里的任意一个字符。[aeiou] 匹配任意元音字母;[0-9] 匹配数字;[^0-9](取反)匹配非数字。

6. * 零次或多次

前一个字符出现 0 次或多次。ab*c 匹配 acabcabbc

7. + 一次或多次

前一个字符至少出现 1 次。\d+ 匹配一个或多个数字,如 123

8. ? 零次或一次

前一个字符可有可无。colou?r 同时匹配 colorcolour

9. {n,m} 指定次数

\d{3} 恰好 3 位数字;\d{3,4} 3~4 位;\d{3,} 至少 3 位。手机号 1\d{10} 就是「1 开头共 11 位」。

10. ^$ 首尾锚点

^ 匹配字符串开头,$ 匹配结尾。^\d{4}$ 要求整串恰好是 4 位数字(不多不少)。

三、三个实战例子

例 1:校验手机号

^1[3-9]\d{9}$

解读:^1 以 1 开头,[3-9] 第二位是 3~9,\d{9} 再接 9 位数字,$ 结尾。整串 11 位。

例 2:提取邮箱

[\w.-]+@[\w-]+\.[\w.]+

解读:@ 前是字母数字点横线,@ 后是域名,\. 是字面意义的点(点号是元字符要转义)。

例 3:匹配日期 YYYY-MM-DD

^\d{4}-\d{2}-\d{2}$

解读:4 位年、横线、2 位月、横线、2 位日。注意横线 - 在字符集外不用转义。

四、新手最常踩的坑

五、在线测试工具

写完正则不确定对不对?用本站正则测试工具,粘贴正则和测试文本,实时高亮匹配结果,边调边看,比盲写高效得多。

常见问题

正则表达式难学吗?

入门不难——掌握本文 10 个元字符就能应付大多数场景。难的是复杂正则的可读性,建议复杂逻辑拆成多步,别追求一条正则包打天下。

不同语言的正则一样吗?

核心语法(本文讲的这些)在 Python、Java、JavaScript、PHP 里基本一致,差异在高级特性(如后向引用、命名分组)和部分函数名。

* 和 + 有什么区别?

* 允许出现 0 次(可有可无),+ 至少出现 1 次。ab*c 能匹配 acab+c 不能。

更多文章