ZH
我的工具

正则替换工具

用正则表达式查找并替换文本:支持捕获组($1、$<name>)和标志,所有匹配项都会列在表格中。使用 JavaScript 正则引擎。

不要带两端的斜杠。
$1、$2 … = 分组,$<name> = 命名分组,$& = 整个匹配,$$ = 美元符号。
我的工具 →
广告

用正则表达式搜索文本并替换每一个匹配——可以重排捕获的分组、忽略大小写,或逐行处理——并在表格中列出每个匹配。工具使用浏览器自带的 JavaScript 正则引擎,所以结果与 JavaScript 中 text.replace(/pattern/flags, replacement) 返回的完全一致。

使用方法

  1. 粘贴要编辑的文本。
  2. 输入不带斜杠的正则,例如 (\d{4})-(\d{2})-(\d{2})。
  3. 输入替换内容:用 $1、$2 … 表示分组,用 $<name> 表示命名分组。
  4. 点击“计算”。设置标志:开启“全局”会替换所有匹配,而不只是第一个。

计算公式

result = text.replace(new RegExp(pattern, flags), replacement)

在替换内容中,$1 到 $99 插入编号分组,$<name> 插入命名分组,$& 插入整个匹配,$$ 表示字面的美元符号。没有参与匹配的分组不会插入任何内容。开启转义选项后,\n 变成换行符,\t 变成制表符。计算在带有两秒限制的 Worker 中运行。

示例

在 "paid on 2026-02-03" 中,正则 (\d{4})-(\d{2})-(\d{2}) 把 2026 捕获为分组 1,02 为分组 2,03 为分组 3,所以替换内容 $3/$2/$1 会把日期变成 03/02/2026。在示例发票文本上,三个 ISO 日期都被改写为日/月/年的顺序(替换了 3 个匹配),表格则显示每个匹配的位置及其分组。

常见问题

为什么只替换了第一个匹配?

因为“全局”(g)标志没有开启。没有它时,JavaScript 只替换第一个匹配;结果下方的提示会告诉你跳过了多少个匹配。

怎样插入字面的美元符号?

写成 $$。例如,把 \d+ 替换为 $$$& 会把 20 变成 $20:$$ 给出美元符号,$& 给出匹配到的数字。

在 Python 或 PHP 中的行为一样吗?

大多数正则的行为相同,但替换语法不同:Python 的 re.sub 使用 \1 和 \g<name>,PHP 的 preg_replace 接受 $1 或 \1。Python 的命名分组也写作 (?P<name>…)。

为什么正则会超时?

像 (a+)+$ 这样的嵌套量词,在接近匹配的输入上可能耗时过长。工具在 Worker 中运行,两秒后停止。请简化正则,或使用更短的文本。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 正则替换工具. https://kakao.mobile/zh/tools/regex-replace-tool/

MLA

“正则替换工具.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/regex-replace-tool/.

广告