返回博客
技术教程 2026-09-19

正则表达式入门教程:从零基础到实战应用

正则表达式(Regular Expression,简称 regex 或 regexp)是一种用于匹配字符串中字符组合的模式。它广泛应用于文本搜索、替换、验证、数据提取等场景,几乎所有编程语言和文本编辑器都支持正则表达式。掌握正则表达式,可以让您的文本处理效率提升数倍。

一、什么是正则表达式

简单来说,正则表达式就是一套"匹配规则",用特定的符号描述您想要找的文本模式。例如,\d+ 表示匹配一个或多个数字,[\w.-]+@[\w.-]+\.\w+ 可以匹配邮箱地址。

正则表达式的优势在于:

  • 表达力强:用简短的表达式描述复杂的匹配规则
  • 通用性好:几乎所有编程语言和工具都支持
  • 效率高:一次匹配可以完成复杂的文本处理

二、基础语法

1. 普通字符

字母、数字、汉字等普通字符在正则表达式中匹配自身。例如,正则 hello 可以匹配文本中的 "hello"。

2. 元字符

元字符是正则表达式中具有特殊含义的字符,是正则表达式的核心:

  • . — 匹配任意单个字符(除换行符外)
  • \d — 匹配数字,等价于 [0-9]
  • \w — 匹配单词字符(字母、数字、下划线),等价于 [a-zA-Z0-9_]
  • \s — 匹配空白字符(空格、制表符、换行等)
  • ^ — 匹配字符串开头
  • $ — 匹配字符串结尾
  • \b — 匹配单词边界

3. 量词

量词用于指定前面的字符或组重复出现的次数:

  • * — 0 次或多次
  • + — 1 次或多次
  • ? — 0 次或 1 次
  • {n} — 恰好 n 次
  • {n,} — 至少 n 次
  • {n,m} — n 到 m 次

示例:

  • a* — 匹配 0 个或多个 a
  • \d+ — 匹配 1 个或多个数字
  • colou?r — 匹配 color 或 colour(u 可选)
  • \d{4} — 匹配恰好 4 位数字

4. 字符集

用方括号 [] 定义字符集,匹配方括号中的任意一个字符:

  • [abc] — 匹配 a、b 或 c 中的任意一个
  • [a-z] — 匹配任意小写字母
  • [a-zA-Z] — 匹配任意字母
  • [0-9] — 匹配任意数字
  • [^abc] — 匹配除 a、b、c 以外的任意字符(^ 在方括号内表示取反)

5. 分组与捕获

用圆括号 () 将多个字符组合为一个整体,称为分组。分组还可以捕获匹配到的内容,供后续引用:

  • (abc)+ — 匹配一个或多个 "abc"
  • (\d{4})-(\d{2})-(\d{2}) — 匹配日期,并分别捕获年、月、日
  • (?:abc) — 非捕获组,只分组不捕获

6. 选择符

用竖线 | 表示"或",匹配左边或右边的表达式:

  • cat|dog — 匹配 cat 或 dog
  • https?:// — 匹配 http:// 或 https://

三、标志位

标志位用于修改正则表达式的匹配行为,常用的有:

  • g(global)— 全局匹配,找到所有匹配而不是第一个
  • i(ignoreCase)— 忽略大小写
  • m(multiline)— 多行模式,^ 和 $ 匹配每行的开头和结尾
  • s(dotAll)— 让 . 匹配换行符
  • u(unicode)— Unicode 模式,正确处理 Unicode 字符

四、实战示例

1. 匹配邮箱

正则:[\w.-]+@[\w.-]+\.\w+

说明:用户名部分由字母、数字、下划线、点、连字符组成,然后是 @,域名部分,最后是点加顶级域名。

2. 匹配手机号

正则:1[3-9]\d{9}

说明:以 1 开头,第二位是 3-9,后面跟 9 位数字,共 11 位。

3. 匹配 URL

正则:https?://[^\s]+

说明:以 http:// 或 https:// 开头,后面跟一个或多个非空白字符。

4. 匹配日期

正则:\d{4}-\d{2}-\d{2}

说明:4 位年份-2 位月份-2 位日期,如 2026-09-20。

5. 匹配 IP 地址

正则:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

说明:4 组 1-3 位数字,用点分隔。更严格的版本需要限制每组 0-255。

6. 替换示例:交换日期格式

正则:(\d{4})-(\d{2})-(\d{2})

替换为:$3/$2/$1

效果:2026-09-20 → 20/09/2026

五、学习建议

1. 多练习:正则表达式需要大量练习才能熟练。使用在线正则测试工具,边写边看效果。

2. 从简单开始:先掌握基础语法,再逐步学习高级特性如断言、递归等。

3. 善用工具:使用正则测试工具的高亮和详情功能,理解每一步匹配的过程。

4. 参考常用正则:邮箱、手机号、URL 等常用正则有成熟的写法,可以直接参考和修改。

结语

正则表达式是一项值得投入时间学习的技能。虽然初期学习曲线较陡,但掌握后可以在文本处理、数据提取、代码重构等场景中大幅提升效率。建议使用 Toolso 在线正则表达式测试工具,配合本文的示例,边学边练,快速掌握正则表达式。

相关工具推荐

正则测试 JSON 格式化 文本工具