正则转自然语言
粘贴正则表达式,即可得到对锚点、字符类、量词、分组和环视的大白话分步解释,并可实时测试。
粘贴一个正则表达式,就能得到它匹配内容的大白话分步解读——锚点、字符类、量词、分组、环视和反向引用——并按照正则的嵌套层次缩进。工具读取的是 JavaScript(ECMAScript)语法,其大部分写法与 PCRE、Python 和 Java 相同,你还可以立刻用测试字符串试一试。
使用方法
- 粘贴正则——可以只粘贴正则本身,如 (\d+),也可以粘贴带斜杠的字面量,如 (/\d+/gi)。
- 如果标志不在字面量中,请另外添加。
- 也可以输入测试字符串,查看这个正则匹配了什么。
- 点击“计算”。从上到下阅读解释,缩进的行属于它上面的分组。
计算公式
* = 0 次或多次 · + = 1 次或多次 · ? = 0 次或 1 次 · {n} = 恰好 n 次 · {n,} = n 次或更多 · {n,m} = n 到 m 次
量词只作用于它紧前面的那一项——单个字符、字符类、转义序列或整个分组。在量词后加 ?(*?、+?)会使它变成懒惰的,尽可能少地取字符。计算在带有两秒限制的 Worker 中运行。
示例
默认的日期正则解读如下:字符串开头;名为 "year" 的捕获组 1——一个数字,恰好 4 次;字符 "-";名为 "month" 的捕获组 2——要么是 "0" 后面跟 [1 to 9] 中的一个字符,要么是 "1" 后面跟 [0 to 2] 中的一个字符;又一个 "-";名为 "day" 的分组 3——一个数字,恰好 2 次;然后是字符串结尾。它报告 3 个捕获组,测试字符串 2026-10-29 得到 1 个匹配。
常见问题
正则中的 ?: 是什么意思?
它创建一个非捕获组:(?:abc) 把模式组合起来用于分支或量词,但不会把匹配内容保存为带编号的分组。
贪婪和懒惰有什么区别?
像 .* 这样的贪婪量词会尽可能多地取文本,然后再回退;像 .*? 这样的懒惰量词则尽可能少地取。对于 <b>x</b>,<.*> 会匹配整个字符串,而 <.*?> 只匹配 <b>。
\b 是什么意思?
单词边界:单词字符(字母、数字或下划线)与非单词字符,或文本开头、结尾之间的位置。它本身不匹配任何字符。
为什么我的正则被报告为无效?
因为它用了 JavaScript 不支持的语法,比如 PCRE 的占有量词(a++)或原子组 (?>…),或者括号不平衡。Python 的 (?P<name>…) 分组会被自动转换。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/regex-to-english-tool/
引用此工具
kakaoCalc. (2026, November 8). 正则转自然语言. https://kakao.mobile/zh/tools/regex-to-english-tool/
“正则转自然语言.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/regex-to-english-tool/.