正则反向生成工具接收一个正则表达式,输出一批符合该表达式的匹配字符串示例,帮助开发者直观验证正则逻辑是否符合预期、理解表达式的覆盖范围。生成数量可在 10–1000 之间调节,结果列表实时展示,无需额外点击。
正则表达式如何转化为匹配字符串
工具使用 regex-to-strings 库枚举表达式的所有可展开路径,再从中抽取指定数量的样本。结果面板标题格式为"当前显示数 / 可能匹配总数",例如"10 / 468"表示该正则理论上有 468 种不同匹配,当前展示前 10 个。
以默认示例为例:
输入 /(((555) ?)|(555-))?d{3}-d{4}/ 可能生成:
555 234-5678555-012-3456789-1234555 901-2345345-6789
这些字符串都满足"可选的 555 前缀 + 三位数字 + 连字符 + 四位数字"的规则,展现了量词 ? 和分组选择 | 的不同组合路径。
哪些正则语法可以被展开
工具支持以下常见结构的穷举展开:
- 字符组
[abc]、字符范围[a-z] - 有界量词
{n}、{n,m} - 可选项
? - 分组与选择
(a|b) - 字符类
\d(等价于[0-9])、\w(等价于[a-zA-Z0-9_])
含无限量词(如 +、*、{2,})的表达式在理论上有无数匹配,工具会截断到所设上限生成有代表性的样本。
生成数量与可读性的权衡
表达式语法错误的提示
工具在生成前会用浏览器原生 RegExp 构造函数对输入做语法验证。如果正则语法本身不合法(如未闭合的括号、非法转义),会在提交前弹出错误提示并显示具体的错误原因,不会进入生成流程。