Notepad++正则替换快速删除文本中重复数字的实例

夏晨小哥_3114

夏晨小哥_3114

2026-11-15

202人浏览

原创

Notepad++中匹配连续重复数字应使用\b(\d+)\s+\1\b,需注意单词边界、空白符处理及负数/浮点数等扩展场景,原生正则不支持跨行全局去重。

notepad++正则替换快速删除文本中重复数字的实例

匹配连续重复数字用 \b(\d+)\s+\1\b

Notepad++ 的正则引擎默认是 PCRE(v8.3x),支持反向引用,但要注意单词边界 \b 对数字很关键——否则 12 123 会被误判为重复。这个模式只匹配「完全相同的数字」且前后都是单词边界(即被空格、换行或行首/尾隔开)。

常见错误是漏掉 \s+ 或用 \s*:前者会漏掉多个空格/制表符场景,后者可能把 42\n42(换行分隔)也匹配进来,但 Notepad++ 的 \s 默认不包含换行,所以更稳妥的是显式写 (\s+|\r?\n)。

  • 想删掉每行末尾的重复数字?用 (\d+)\s+\1$,并勾选「匹配行尾」
  • 要保留第一个、删第二个?替换框填 \1(不是留空!否则会多出空白)
  • 区分大小写?不用管,数字没大小写;但注意关闭「匹配大小写」选项避免干扰

删除非连续但语义重复的数字(如列表中重复项)

上面的正则只处理相邻重复,如果文本是 101 202 101 303 这种跨位置重复,Notepad++ 原生正则做不到全局去重——它没有「回溯整个文档查重」的能力。这时候得换思路:

  • 先用 ^.*$ 全选 → Ctrl+J 合并为单行 → 再用列编辑(Alt+鼠标拖选)或排序插件辅助
  • 更可靠:复制到 Excel,用「删除重复项」功能,再粘回;或用 Python 脚本跑 list(set(map(int, text.split())))
  • 别信网上“用 (\d+)(?=.*\1) 删除”的说法——Notepad++ 不支持可变长度的先行断言(.*\1 中 .* 长度不定),会直接报错 Invalid regular expression

替换后残留多余空格怎么办

用 \1 替换 \b(\d+)\s+\1\b 后,原本两个数字之间的空格还在,只是少了一个数字,结果变成 123 456(双空格)。这不是 bug,是正则设计使然。

解决方法分两步走:

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载
  • 第一步替换:用 \b(\d+)\s+\1\b → \1(删重复,留一个)
  • 第二步清理:用 \s{2,} → 单个空格,或更彻底点用 [ \t]+ → (一个空格)
  • 如果行首/行尾有多余空格,单独跑一次 ^\s+|\s+$ → 留空(注意勾选「匹配行首/行尾」)

为什么 \d+ 有时会匹配到小数或负数

\d+ 本身只匹配数字字符,但它不排斥前后紧贴其他符号。比如文本中有 -123 -123,\b(-?\d+)\s+\1\b 才能正确捕获负号;而 3.14 3.14 中的 .14 会被 \d+ 忽略,导致只匹配到 3 3,漏掉小数部分。

若需支持浮点或负数,必须扩展模式:

  • 整数(含负):\b-?\d+\b
  • 浮点数(简单版):\b-?\d+\.?\d*\b(注意 \. 要转义)
  • 但复杂浮点如 1e-5 就超出 Notepad++ 正则能力了,建议导出用专用工具处理

真正容易被忽略的是 Unicode 数字(比如全角数字 123):Notepad++ 默认不识别,\d 只匹配 ASCII 0–9。遇到这类文本,先统一转半角再操作。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
notepad++官网
notepad++官网

notepad++提供了许多强大的功能和工具,使其成为许多程序员和开发人员的首选工具。本专题为大家提供notepad++官网的相关文章,大家可以免费体验。

2023.08.04

6693

7

notepad++使用教程
notepad++使用教程

notepad++适合处理代码编辑、文本替换、格式查看和批量查找等日常任务。本专题围绕下载安装、界面设置、文件编辑、查找替换、插件使用和常见问题处理展开。

2025.08.01

8162

38

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

2026.11.12

40

15

Go-Zero安装与goctl环境配置教程
Go-Zero安装与goctl环境配置教程

本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。

2026.11.12

40

15

Go-Zero零基础入门教程
Go-Zero零基础入门教程

本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。

2026.11.12

20

15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

140

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

100

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

100

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

100

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Notepad++ 官方插件文档
Notepad++ 官方插件文档

共0课时 | 0人学习

Notepad++ 官方用户手册
Notepad++ 官方用户手册

共0课时 | 0人学习

Notepad++ 官方插件文档
Notepad++ 官方插件文档

共0课时 | 0人学习