Text/Clean

查找替换与正则表达式实用模式合集

可直接用于文本整理的JavaScript正则查找替换模式。讲解日期格式转换、手机号脱敏、删除括号内容、删除行尾空格,以及$1分组引用的用法。

查找替换 同时支持普通模式和正则模式。普通模式按输入的字符原样查找,正则模式按模式查找。本文整理正则模式的规则和常用模式。

本工具的正则规则

  • 语法是浏览器的 JavaScript 正则表达式
  • 会自动加上 g(全部替换)、m(多行)、u(Unicode)标志。开启“忽略大小写”后还会加上 i
  • 由于 m 标志,^$ 匹配的不是整个文本,而是每一行的开头和结尾
  • 由于 u 标志,多余的反斜杠会导致错误。例如不能写 \:,要写成 :。可以使用 \p{L} 这样的 Unicode 属性。
  • 在替换内容中,$1$2 表示括号分组,$& 表示整个匹配,$$ 表示一个 $ 字符。\n 表示换行,\t 表示制表符。
  • 如果模式有错误,该步骤不会改动输入,并显示错误。
\s 也会匹配换行。如果只想查找不跨行的空白,请使用 [ \t]

实用模式

下面采用“查找内容 → 替换内容”的格式。替换内容为“(留空)”时,请把输入框留空。

1. 转换日期格式

(\d{4})-(\d{2})-(\d{2})$1.$2.$3

2026-09-23  →  2026.09.23

如果要调换顺序,像 $3/$2/$1 这样调整分组编号的位置即可。

2. 隐藏手机号中段

(01[016789])-?(\d{3,4})-?(\d{4})$1-****-$3

010-1234-5678  →  010-****-5678
01098765432    →  010-****-5432

这是韩国手机号(01X 开头)的写法。其他国家的号码请按其位数调整数字部分。

3. 隐藏邮箱前半部分

\b([A-Za-z0-9._%+-]{2})[A-Za-z0-9._%+-]*@$1***@

hong.gildong@example.com  →  ho***@example.com

4. 删除括号及其中内容

\s*\([^)]*\) → (留空)

北京(总部) 上海 (分公司)  →  北京 上海

((a)) 这样嵌套的括号可能无法一次删干净。

5. 删除行尾空格

[ \t]+$ → (留空)

6. 三行以上的空行合并为一行

\n{3,}\n\n

7. 删除数字中的千位逗号

(\d),(?=\d{3}\b)$1

1,234,567元  →  1234567元

8. 删除 URL 的查询参数和锚点

(https?:\/\/[^\s?#]+)[?#]\S*$1

https://example.com/page?utm_source=a#top  →  https://example.com/page

9. 删除聊天记录前的时间

^\[?\d{1,2}:\d{2}(?::\d{2})?\]?[ \t]* → (留空)

[12:30] 大家好  →  大家好

10. 调换“姓, 名”的顺序

^([^,\n]+),[ \t]*(.+)$$2 $1

Kim, Minsu  →  Minsu Kim

11. 把重复的单词合并为一个

\b(\w+)[ \t]+\1\b$1(开启“忽略大小写”后 The the 也能匹配)

12. 在汉字与英文之间加空格

(\p{Script=Han})([A-Za-z])$1 $2

中文abc  →  中文 abc

Han 换成 Hangul,就能对韩文做同样的处理(한글abc한글 abc)。

13. 用方括号把数字括起来

\d+(?:\.\d+)?[$&]

常见错误

  • 直接使用点(.):在正则表达式中 . 表示任意一个字符。要查找句点或域名中的点,请写成 \.example.com 也会匹配 exampleXcom
  • 贪婪的 .\*:<.*> 会一口气匹配从一行中第一个 < 到最后一个 > 的全部内容。把它用在 <b>x</b> <i>y</i> 上,连文字都会全部消失。要逐个匹配标签,请使用 <[^>]*><.*?>
  • 替换内容中的 $:在正则模式下,如果要在替换内容中写入价格符号之类的 $,需要写成 $$。普通模式下 $ 会按字面插入。
  • 把特殊字符当作普通字符查找:要查找 ( ) [ ] + ? *,请在前面加反斜杠。如果符号很多,关闭正则、用普通模式查找会更简单。

一次处理多行

在查找内容中写入 \n,就能查找换行本身。例如 ,\n, 会把以逗号结尾的行与下一行合并。如果目的是删除整行,行过滤 比正则表达式更简单。按句子拆分行的工作,用 添加换行(拆分) 的“句末”依据更安全。

顺序很重要

一条流水线中可以放多个查找替换步骤,它们会从上往下依次应用。前一步的结果是后一步的输入,所以很多时候要先整理空格,模式才能匹配。把 删除首尾空格整理连续空格·制表符 放在前面,模式就可以写得更简单。

检查清单

  • 按行匹配的模式使用 ^$
  • 不想跨行时,用 [ \t] 代替 \s
  • 检查结果,如果不对就关闭该步骤并修改模式。

最后更新: 2026-09-23