RUNWEBTOOLS
简体中文
网络与开发者

写给初学者的正则表达式

更新 2026-07-06

正则表达式素来有难懂的名声 —— 像 ^\d{3}-\d{4}$ 这样一堵符号的墙。但其核心思想很简单,而懂一点正则,是任何跟文本打交道的人杠杆最高的技能之一。本指南从零讲起。

正则表达式是什么

正则表达式(regex)是一个描述一组字符串的 模式。你不是去找某个确切的词,而是描述你要找之物的 形状 —— “三个数字、一个短横、再四个数字” —— 引擎会找出所有符合的文本片段。它用于查找替换、校验输入(邮箱、电话号码),以及从文本里抽取数据。

字面字符

最简单的正则就是文本。模式 cat 会匹配输入中任何位置的 c-a-t 字母。大多数字符匹配它们自己 —— 威力来自少数几个特殊字符。

核心构件

字符类 —— 什么样的字符

  • \d —— 任意数字;\w —— 单词字符;\s —— 空白。
  • . —— 任意一个字符。
  • [aeiou] —— 集合中的任意一个字符;[a-z] —— 一个范围。

量词 —— 有多少个

  • * —— 零个或多个;+ —— 一个或多个;? —— 零个或一个(可选)。
  • {3} —— 恰好三个;{2,4} —— 二到四个之间。

锚点 —— 在哪里

  • ^ —— 字符串的开头;$ —— 字符串的结尾。

读一个真实的例子

现在开头那堵符号的墙讲得通了:

^\d{3}-\d{4}$
^      start of string
\d{3}  exactly three digits
-      a literal dash
\d{4}  exactly four digits
$      end of string

它匹配一个 是 7 位电话号码(如 555-1234)的字符串 —— 前面没有别的,后面也没有。

别忘了转义

要匹配一个平常是特殊字符的字符 —— 一个字面的点或问号 —— 就在它前面加个反斜杠:\. 匹配一个真正的点。忘掉这一点是初学者头号错误,因为 . 否则会匹配 任意 字符。

保持练习

学得最快的办法是拿模式去试真实文本,看它匹配到什么。一边做一边开着 正则速查表,并用像 查找替换 这样的工具把模式应用到你自己的文本上。一旦正则想通了,那些原本枯燥的活儿 —— 重排一个列表、抽取每一个 URL、校验输入 —— 都变成了一行代码。

更多 网络与开发者

查看全部 网络与开发者 指南 →

本指南提到的工具