正则表达式生成器
用步骤(文本、数字、字母、字符集、锚点)加上重复和分组,以可视化方式构建正则表达式,或从预设开始,并实时测试。
/^\d{3}-\d{4}$/m2 个匹配
什么是 正则表达式生成器?
通过一系列简单的步骤构建正则表达式,而不必手写。每个步骤是一个构件——精确文本、数字、字母、单词字符、空白、任意字符、字符集、锚点——并带有重复规则和可选的分组。现成的预设(电子邮件、网址、IPv4、ISO 日期、十六进制颜色、时间、slug、UUID、话题标签、重复单词)为你提供起点,生成的模式会在示例文本上实时测试。
如何使用 正则表达式生成器
- 在从常用模式开始中选择一个预设,或编辑默认的步骤。
- 为每个步骤选择构件、它的文本或字符、重复的次数,以及是否为分组。
- 用添加步骤、箭头和删除来安排步骤,并按需勾选修饰符。
- 在测试字符串中查看匹配,并复制生成的正则。
示例
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"。