如何用Notepad++正则表达式为无后续文本的IP行添加内容
用Notepad++正则表达式补全IP地址后的指定文本
需求说明
现有一份每行单独显示的IP地址列表,部分IP的下一行是普通文本字符串,部分IP的下一行仍是IP地址(或无内容)。需要为下一行不是普通文本的IP地址下方插入固定文本ABC123,最终实现每个IP地址后要么是原有文本,要么是ABC123。
原始文本
16.232.39.195 dwdwevevveeve 148.92.235.232 49.58.203.107 130.221.168.79 vfeevvewdwdqwdq 2.170.109.98 254.250.64.253 10.102.107.236 155.146.118.222 ntyrovgmnfewijw 47.80.127.125 ewfwfmbbrmbve 26.232.99.92 10.0.46.127 229.154.77.234 35.15.165.153 fewomwvmvvm 157.27.74.183 78.244.169.225 114.7.107.67 xfevwwf 13.118.248.99 ewfwfwwf 116.102.16.22 wfgheegfwf 22.4.118.222 61.205.56.191
目标效果
16.232.39.195 dwdwevevveeve 148.92.235.232 ABC123 49.58.203.107 ABC123 130.221.168.79 vfeevvewdwdqwdq 2.170.109.98 ABC123 254.250.64.253 ABC123 10.102.107.236 ABC123 155.146.118.222 ntyrovgmnfewijw 47.80.127.125 ewfwfmbbrmbve 26.232.99.92 ABC123 10.0.46.127 ABC123 229.154.77.234 ABC123 35.15.165.153 fewomwvmvvm 157.27.74.183 ABC123 78.244.169.225 ABC123 114.7.107.67 xfevwwf 13.118.248.99 wefwfwwf 116.102.16.22 wfgheegfwf 22.4.118.222 ABC123 61.205.56.191 ABC123
核心逻辑
- 遍历每一行IP地址:
- 如果下一行是IP地址,则在当前IP下方插入
ABC123 - 如果下一行是普通文本,则保持不变
- 如果下一行是IP地址,则在当前IP下方插入
- 最后一行IP地址下方也需要插入
ABC123
解决方案(Notepad++正则替换)
分两次替换即可完成需求,操作步骤如下:
步骤1:处理中间IP后紧跟IP的情况
- 打开Notepad++并加载目标文本
- 按下
Ctrl+H打开「替换」对话框 - 在「查找模式」中选择「正则表达式」,不要勾选「.匹配换行符」
- 在「查找内容」中输入:
(^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\R(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$\R用于匹配任意换行符,兼容Windows/OSX/Linux的换行格式) - 在「替换为」中输入:
\1\RABC123\R\2 - 点击「全部替换」,此时所有中间位置的IP后紧跟IP的情况都会被插入
ABC123
步骤2:处理最后一行IP的情况
- 继续在「替换」对话框中,修改「查找内容」为:
^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$ - 修改「替换为」为:
\1\RABC123 - 点击「全部替换」,此时最后一行没有后续内容的IP会被添加
ABC123
补充说明
- 正则中的
^和$用于匹配整行内容,确保只匹配单独一行的IP地址 - 如果你的Notepad++版本不支持
\R,可以将其替换为\r\n(Windows换行)或\n(OSX/Linux换行) - 若文本中存在IP行末尾有空格的情况(如原始文本中的
16.232.39.195),可以将查找正则中的^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})修改为^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*,匹配IP后的任意空格
内容的提问来源于stack exchange,提问作者Ajs
相关产品推荐
相关产品推荐

