正则替换工具
用正则表达式查找并替换文本:支持捕获组($1、$<name>)和标志,所有匹配项都会列在表格中。使用 JavaScript 正则引擎。
用正则表达式搜索文本并替换每一个匹配——可以重排捕获的分组、忽略大小写,或逐行处理——并在表格中列出每个匹配。工具使用浏览器自带的 JavaScript 正则引擎,所以结果与 JavaScript 中 text.replace(/pattern/flags, replacement) 返回的完全一致。
使用方法
- 粘贴要编辑的文本。
- 输入不带斜杠的正则,例如 (\d{4})-(\d{2})-(\d{2})。
- 输入替换内容:用 $1、$2 … 表示分组,用 $<name> 表示命名分组。
- 点击“计算”。设置标志:开启“全局”会替换所有匹配,而不只是第一个。
计算公式
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 中运行,两秒后停止。请简化正则,或使用更短的文本。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/regex-replace-tool/
引用此工具
kakaoCalc. (2026, November 8). 正则替换工具. https://kakao.mobile/zh/tools/regex-replace-tool/
“正则替换工具.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/regex-replace-tool/.