正则表达式入门:常用符号、实用示例和在线测试方法
正则表达式(Regular Expression)是一种描述“文本规律”的小语言,用来查找、校验和替换文本,例如检查手机号格式、从日志里提取 IP、批量修改文件中的日期格式。它看起来像乱码,但常用的符号其实不多。本文配合 正则表达式测试 讲解,边看边试最容易掌握。
最常用的符号
| 符号 | 含义 | 示例 |
|---|---|---|
. | 任意一个字符(默认不含换行) | a.c 匹配 abc、a1c |
\d | 一个数字,等价于 [0-9] | \d\d 匹配 42 |
\w | 字母、数字或下划线 | \w+ 匹配 user_01 |
\s | 空白字符(空格、制表符、换行) | a\sb 匹配 a b |
[abc] | 方括号中的任意一个字符 | [aeiou] 匹配元音 |
[^abc] | 不在方括号中的字符 | [^0-9] 匹配非数字 |
^ 和 $ | 开头和结尾 | ^abc$ 只匹配整串 abc |
* + ? | 0 次以上、1 次以上、0 或 1 次 | ab+ 匹配 ab、abbb |
{n,m} | 重复 n 到 m 次 | \d{3,4} 匹配 3 到 4 位数字 |
( ) | 分组并捕获 | (\d{4})-(\d{2}) 取出年和月 |
| | 或 | cat|dog 匹配 cat 或 dog |
需要匹配符号本身时要加反斜杠转义,例如 \. 匹配真正的点,\( 匹配左括号。
几个实用示例
- 中国大陆手机号:
^1[3-9]\d{9}$,以 1 开头、第二位 3 到 9、后面 9 位数字。 - 简单邮箱校验:
^[\w.+-]+@[\w-]+(\.[\w-]+)+$。真实世界的邮箱规则非常复杂,正则只适合做初步检查。 - 日期 2026-10-31:
^(\d{4})-(\d{2})-(\d{2})$,三个分组分别取出年、月、日。 - 把日期改成 2026/10/31:查找
(\d{4})-(\d{2})-(\d{2}),替换为$1/$2/$3。
在线测试的步骤
- 输入正则:打开 正则表达式测试,在上方输入正则,并勾选需要的修饰符:g(全局匹配)、i(忽略大小写)、m(多行模式)。
- 粘贴测试文本:在“测试文本”中粘贴内容,匹配部分会实时高亮,并列出每个分组。
- 试试替换和分割:切换到“替换”,在“替换为”中使用
$1、$2引用分组;“分割”可以查看按正则切分的结果。 - 看图解:“图解”页会画出正则的铁路图并逐段解释,适合读懂别人写的复杂正则。
- 生成代码:“代码”页给出 JS、Python、Java、Go、PHP 的写法,可以直接复制。

🧪 正则表达式测试(在线图解 + 替换)
免费在线使用,文件和数据只在你的浏览器本地处理,无需注册。
新手最常踩的坑
- 忘了加 ^ 和 $:校验格式时不加锚点,
^1[3-9]\d{9}$写成1[3-9]\d{9},会让“abc13800138000xyz”也通过。 - 贪婪匹配吞掉太多:
<.*>会从第一个 < 一直匹配到最后一个 >;改成非贪婪的<.*?>才会逐个匹配标签。 - 忘了转义:
.不是“点”,而是任意字符;匹配 IP 地址里的点要写\.。 - 不同语言有差异:本工具使用浏览器的 JavaScript 正则引擎,支持命名分组、先行和后行断言等。Python、Java 大部分语法相同,但细节不一定一致,可以参考“代码”页。
- 复杂格式别硬写:解析 HTML、JSON 这类嵌套结构,用专门的解析器比正则可靠得多。
想系统查阅语法,可以看 正则速查表。
常见问题
手机号的正则表达式怎么写?
常用写法是 ^1[3-9]\d{9}$,表示以 1 开头、第二位是 3 到 9、后面 9 位数字。号段会随运营商调整,必要时以最新号段为准。
正则中的 g、i、m 是什么意思?
g 表示全局匹配(找出所有结果而不是第一个),i 表示忽略大小写,m 表示多行模式,使 ^ 和 $ 匹配每一行的开头和结尾。
什么是贪婪和非贪婪匹配?
量词默认尽可能多地匹配(贪婪),在量词后加 ? 变成尽可能少地匹配(非贪婪),例如 .*?。
测试的内容会被上传吗?
不会。所有匹配和替换都在你的浏览器里完成。