如何在Notepad++中通过正则表达式提取SIP=后的IP地址
如何在Notepad++中通过正则表达式提取SIP=后的IP地址
嘿,这个需求我太熟了!用Notepad++的正则替换功能就能完美解决,一步步来超简单:
- 首先打开你的大文件,按下
Ctrl+H调出替换对话框。 - 在「查找模式」里选中「正则表达式」,记得不要勾选“.匹配换行符”(你的IP都是单行出现的,这个选项开了反而会出错)。
- 在「查找内容」框里输入这段正则:
\|SIP=(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\|
给你拆解下这段正则的意思:\|:匹配前后的竖线(竖线在正则里是特殊符号,必须加反斜杠转义才能匹配真实的竖线)SIP=:精准匹配你要找的固定前缀(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):用括号把IP地址部分“圈”起来(这叫捕获组),\d{1,3}匹配1-3位数字,\.匹配IP里的点(同样要转义)
- 在「替换为」框里只输入
$1就行,$1代表刚才用括号捕获到的第一个内容——也就是我们要的IP地址本身。 - 最后点「全部替换」,就能一次性把所有符合格式的IP都提取出来啦!
如果你的文件里可能存在像999.999.999.999这种无效IP,想要只提取合法的IP地址,可以把「查找内容」换成更严格的正则:\|SIP=((?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\|
替换内容依旧是$1,这样就能过滤掉不符合IP规则的无效内容啦。
备注:内容来源于stack exchange,提问作者AxelKong
相关产品推荐
相关产品推荐

