🔍

首页 › 使用教程 › 开发与效率

正则表达式入门:常用符号、实用示例和在线测试方法

更新于 2026-10-31 · 阅读约 3 分钟 · 用到的工具:正则表达式测试(在线图解 + 替换)、正则表达式语法速查表

正则表达式(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。

在线测试的步骤

  1. 输入正则:打开 正则表达式测试,在上方输入正则,并勾选需要的修饰符:g(全局匹配)、i(忽略大小写)、m(多行模式)。
  2. 粘贴测试文本:在“测试文本”中粘贴内容,匹配部分会实时高亮,并列出每个分组。
  3. 试试替换和分割:切换到“替换”,在“替换为”中使用 $1、$2 引用分组;“分割”可以查看按正则切分的结果。
  4. 看图解:“图解”页会画出正则的铁路图并逐段解释,适合读懂别人写的复杂正则。
  5. 生成代码:“代码”页给出 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 表示多行模式,使 ^ 和 $ 匹配每一行的开头和结尾。

什么是贪婪和非贪婪匹配?

量词默认尽可能多地匹配(贪婪),在量词后加 ? 变成尽可能少地匹配(非贪婪),例如 .*?。

测试的内容会被上传吗?

不会。所有匹配和替换都在你的浏览器里完成。