无需登录 数据私有 本地保存

正则表达式速查表 - 语法规则及示例

104
0
0
0

快速开始

使用正则表达式速查表非常简单,只需三步即可开始:

第一步:打开速查表页面

在UD5工具箱中搜索「正则表达式」或直接访问正则表达式速查表工具页面。页面加载完成后,您将看到按分类组织的正则语法参考内容。

第二步:定位所需语法

根据您的需求,通过分类导航快速跳转到对应的语法板块。速查表将内容分为以下主要板块:元字符、量词、分组语法、零宽断言和常用标志位。

第三步:查阅示例并应用

找到目标语法后,查看其含义说明和匹配示例,直接复制正则模式到您的代码中使用。

按场景快速查阅

场景一:表单验证

当您需要验证用户输入的邮箱、手机号或身份证号时,可在速查表的「实用示例」部分找到对应的正则模式。例如:

  • 邮箱验证 — 匹配常见邮箱格式,如 [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • 手机号验证 — 匹配中国大陆手机号 1[3-9]\d{9}
  • URL验证 — 匹配常见网页链接格式

场景二:数据提取

从大段文本中提取特定信息是正则表达式的经典应用场景:

  • 提取HTML标签中的内容 — 使用 <([^>]+)>([^<]*)</\1> 匹配标签对及其内容
  • 提取日期时间 — 匹配 \d{4}[-/]\d{1,2}[-/]\d{1,2} 格式的日期
  • 提取IP地址 — 匹配 \b(?:\d{1,3}\.){3}\d{1,3}\b 格式的IPv4地址

场景三:文本替换

在编辑器或代码中进行批量文本替换时,正则表达式可以实现复杂的匹配和替换逻辑:

  • 将多个连续空格替换为单个空格:\s+ 替换为
  • 删除字符串中的所有HTML标签:<[^>]+> 替换为空字符串
  • 在数字之间添加千位分隔符:使用捕获组和反向引用

进阶使用技巧

理解贪婪与非贪婪匹配

这是正则表达式中最容易出错的概念之一。贪婪模式会尽可能多地匹配字符,而非贪婪模式(通过在量词后添加 ?)则会尽可能少地匹配。例如:

  • <.+>(贪婪)会匹配从第一个 < 到最后一个 > 之间的所有内容
  • <.+?>(非贪婪)会匹配从 < 到最近的 > 之间的内容

速查表中对此有详细的对比示例,帮助您直观理解两者的区别。

善用零宽断言

零宽断言是区分正则高手和初学者的关键特性。它允许您匹配一个「位置」而不消耗任何字符,常用于:

  • 匹配特定上下文中的内容(如被引号包围的文本)
  • 在不改变捕获组的情况下进行条件匹配
  • 实现复杂的字符串边界判断

注意编程语言差异

不同编程语言对正则表达式的支持存在差异,速查表中专门标注了以下注意事项:

  • JavaScript — 使用 /pattern/flags 字面量语法,支持 y(粘连)标志
  • Python — 使用 re 模块,支持 r 原始字符串语法
  • Go — 使用 regexp 包,仅支持 RE2 语法(不支持回溯)
  • Java — 使用 PatternMatcher 类,字符串需双重转义

常见错误与排查

以下是开发者在使用正则表达式时最常遇到的问题及解决方案:

  • 忘记转义特殊字符 — 点号 .、星号 *、问号 ? 等需要使用反斜杠转义
  • 未考虑边界情况 — 正则模式应覆盖空字符串、超长输入等边界情况
  • 过度使用贪婪匹配 — 在不确定输入内容时,优先使用非贪婪模式
  • 忽略大小写 — 使用 i 标志避免因大小写差异导致匹配失败

推荐学习路径

对于正则表达式初学者,建议按以下顺序学习:

  1. 先掌握基础元字符(.\d\w\s)和量词(*+?
  2. 学会使用字符集 [abc] 和范围 [a-z]
  3. 理解分组和捕获的基本用法
  4. 通过实际项目练习文本提取和替换
  5. 逐步掌握零宽断言等高级特性

速查表的内容编排正是按照这一路径设计的,您可以在学习过程中随时查阅对应章节。