Notepad++中通过正则表达式提取IP地址的技巧

P粉328763957

P粉328763957

2026-08-01

771人浏览

原创

notepad++提取ip应避免全行匹配和不严谨正则,推荐使用带负向断言、数值校验(0–255)、点号转义的正则,并通过替换为$0\r\n导出纯ip列表;旧版本需降级兼容写法。

notepad++中通过正则表达式提取ip地址的技巧

Notepad++ 里提取 IP 地址,别用 ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$ 这种“全行匹配”写法——它根本跑不通,因为 IP 几乎不会独占一行。

为什么 \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} 会漏匹配或错匹配

这个正则看着像模像样,但实际在 Notepad++ 中问题很多:

  • 它不检查每段数字是否 ≤255,999.999.999.999 也会被匹配出来
  • 没加边界控制,abc192.168.1.1def 会被截成 92.168.1.1(开头的 1 和结尾的 d 都丢了)
  • Notepad++ 默认不支持 \b 单词边界(尤其旧版本),\b192.168.1.1\b 可能完全不生效
  • 点号 . 没转义,会匹配任意字符,不是字面意义的点

真正可用的 IP 提取正则:(?

这是兼顾兼容性与准确性的写法,已在 Notepad++ v7.9–v8.6 实测通过。关键点:

perl正则表达式学习手册pdf版
perl正则表达式学习手册pdf版

perl正则表达式学习手册pdf版,点击下载解压即可。想学习perl正则的朋友需要看。

下载
  • (? 和 <code>(? 是负向先行断言,防止前面连着数字或“数字.”(如 <code>1192.168.1.1 不匹配)
  • 每段用 (25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d) 严格限制 0–255,排除 999 类非法值
  • (?!\d)(?!\.\d) 是负向后行断言,防止后面跟着数字或“.数字”(如 192.168.1.123x192.168.1.1.2 不匹配)
  • 所有点号 . 都已转义为 \.,确保只匹配真实句点
  • 不用 \b,规避老版本 Notepad++ 不支持的问题

怎么导出纯 IP 列表(不是高亮,是可复制的文本)

仅靠「查找全部」只能看位置,无法批量导出。必须走替换流程:

  • 打开「替换」对话框(Ctrl+H
  • 查找框填完整正则:(?
  • 替换框填:$0\r\n$0 表示整个匹配项,\r\n 是 Windows 换行)
  • 勾选「正则表达式」,点击「全部替换」
  • 此时文档只剩 IP,每行一个;再按 Ctrl+ACtrl+C 即可复制
  • 如果出现空行,说明原文本有连续空白,执行一次「编辑 → 行操作 → 删除空行」即可

遇到内网地址或 IPv6 怎么办

上面的正则只处理标准 IPv4。如果你的文本含以下内容,需额外处理:

  • 内网短格式(如 10.1172.16.0:它们不符合四段结构,不能硬套 IPv4 规则。建议先人工确认上下文,再用更宽松的 \b\d{1,3}(\.\d{1,3}){1,3}\b(不校验数值范围)捞出候选,人工复核
  • IPv6(如 2001:db8::1:Notepad++ 的 PCRE 引擎支持,但正则极长且易出错。推荐用专用工具(如 Python 的 ipaddress 模块)处理,Notepad++ 仅作辅助查看
  • 混在 URL 或日志中(如 GET /api?ip=192.168.1.1 HTTP/1.1:上述正则本身已带前后断言,能正确提取 192.168.1.1,无需额外修改

最常被忽略的是断言兼容性——(? 和 <code>(?!...) 在 Notepad++ v7.5.8+ 才稳定支持,低于此版本会直接报错或静默失效。如果替换无反应,先查版本号(帮助 → 关于 Notepad++),再降级用 [^\d.]((?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3})[^\d.] 并手动删掉首尾非 IP 字符。

相关文章

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

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

下载

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

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

1829

8

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

2023.07.05

1123

4

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

2776

9

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

2023.08.11

649

5

正则表达式空格
正则表达式空格

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

451

5

Python爬虫获取数据的方法
Python爬虫获取数据的方法

Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

493

12

正则表达式空格如何表示
正则表达式空格如何表示

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。

2023.11.17

322

3

正则表达式中如何匹配数字
正则表达式中如何匹配数字

正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.12.06

634

7

php正则表达式有哪些
php正则表达式有哪些

php正则表达式有"/pattern/"、"^"、"$"、"."、"[]"、"[^]"、"[a-z]"、"[A-Z]"、"[0-9]"、"\d"、"\D"、"\w"、"\W"、&a

2024.02.23

249

5

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共0课时 | 0人学习

WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 18.8万人学习