ZH
我的工具

正则转自然语言

粘贴正则表达式,即可得到对锚点、字符类、量词、分组和环视的大白话分步解释,并可实时测试。

可只填正则本身,也可填 /正则/标志 形式的字面量。使用 JavaScript 语法。
可选:g、i、m、s、u、v、y、d
我的工具 →
广告

粘贴一个正则表达式,就能得到它匹配内容的大白话分步解读——锚点、字符类、量词、分组、环视和反向引用——并按照正则的嵌套层次缩进。工具读取的是 JavaScript(ECMAScript)语法,其大部分写法与 PCRE、Python 和 Java 相同,你还可以立刻用测试字符串试一试。

使用方法

  1. 粘贴正则——可以只粘贴正则本身,如 (\d+),也可以粘贴带斜杠的字面量,如 (/\d+/gi)。
  2. 如果标志不在字面量中,请另外添加。
  3. 也可以输入测试字符串,查看这个正则匹配了什么。
  4. 点击“计算”。从上到下阅读解释,缩进的行属于它上面的分组。

计算公式

* = 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>…) 分组会被自动转换。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 正则转自然语言. https://kakao.mobile/zh/tools/regex-to-english-tool/

MLA

“正则转自然语言.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/regex-to-english-tool/.

广告