查找替换与正则表达式实用模式合集
可直接用于文本整理的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