正则表达式生成器

用步骤(文本、数字、字母、字符集、锚点)加上重复和分组,以可视化方式构建正则表达式,或从预设开始,并实时测试。

生成的正则
/^\d{3}-\d{4}$/m

2 个匹配

555-1234 55-12345 123-4567

什么是 正则表达式生成器?

通过一系列简单的步骤构建正则表达式,而不必手写。每个步骤是一个构件——精确文本、数字、字母、单词字符、空白、任意字符、字符集、锚点——并带有重复规则和可选的分组。现成的预设(电子邮件、网址、IPv4、ISO 日期、十六进制颜色、时间、slug、UUID、话题标签、重复单词)为你提供起点,生成的模式会在示例文本上实时测试。

如何使用 正则表达式生成器

  1. 在从常用模式开始中选择一个预设,或编辑默认的步骤。
  2. 为每个步骤选择构件、它的文本或字符、重复的次数,以及是否为分组。
  3. 用添加步骤、箭头和删除来安排步骤,并按需勾选修饰符。
  4. 在测试字符串中查看匹配,并复制生成的正则。

示例

输入
Steps: start · digit exactly 3 · text "-" · digit exactly 4 · end (flag m)
输出
/^\d{3}-\d{4}$/m – matches 555-1234 and 123-4567, not 55-12345

何时使用 正则表达式生成器

适用于你知道文本长什么样、却不熟悉正则语法的时候,或想从经过测试的预设开始。对于选择分支(a|b)、环视或反向引用,请在正则表达式测试工具中进一步完善生成的模式。预设是实用的模式,而不是完整的 RFC 校验器(例如电子邮件预设并不涵盖 RFC 允许的每一种地址)。

正则表达式生成器 的工作原理

每个步骤会被翻译成正则源码:精确文本会被转义(所以 . 或 ( 按字面匹配),字符集变成 […] 或 [^…],其中 ]、\ 和 ^ 会被转义,各构件映射为 \d、\w、\s、\p{L}、.、^、$ 或 \b。重复会添加 ?、*、+、{n}、{n,} 或 {n,m};多字符文本在加量词之前会被包进非捕获组。捕获组、非捕获组和命名组会包裹该步骤。各步骤依次连接,使用 \p{L} 时会自动添加 u 修饰符,并用与正则表达式测试工具相同的引擎在示例文本上运行该模式。

常见用例

  • 为 ABC-1234 这样的产品编码创建模式
  • 从日期、电子邮件或 UUID 的预设开始
  • 了解各个构件如何对应正则语法
  • 为表单字段构建校验模式

常见问题

可以手动编辑生成的正则吗?

把它复制到正则表达式测试工具中进一步调整即可。预设会作为可编辑的模式片段载入。

为什么会自动添加 u 修饰符?

“任意语言的字母”构件使用 \p{L},而 JavaScript 只在 Unicode 模式下才能理解它。

我文本中的特殊字符会被转义吗?

会。精确文本步骤会转义正则元字符,所以 "1.5" 只匹配 "1.5",而不会匹配 "125"。

推荐的下一步

探索更多分类