如何用Notepad++从XML文件中提取不含80端口的URL
在Notepad++中提取config.xml里非80端口的站点URL
当然有精准的正则方案能搞定这个需求!我经常用Notepad++处理这类配置文件,给你一套实用的正则规则和操作步骤:
核心正则表达式
首先切换到Notepad++的正则表达式查找模式,使用下面的正则来匹配并捕获非80端口的站点URL:
<binding protocol="http" bindingInformation="(?:[^:]+:)?(?!80:)[^:]+:([^"]+)" />
正则逻辑拆解(怕你踩坑,给你掰碎了说)
<binding protocol="http" bindingInformation=":精准定位http协议的binding标签,避免误匹配其他协议的配置(?:[^:]+:)?:兼容各种bindingInformation的前缀格式——不管是带IP的(比如217.145.55.21:)、带星号的(*:)还是空前缀(:),这部分不会被捕获,只是用来跳过无关内容(?!80:):关键的负向预查,确保接下来的端口不是80,直接排除所有80端口的配置[^:]+::匹配非80的端口部分(比如:8080:或者:443:)([^"]+):唯一的捕获组,精准提取最后的站点域名/URL,直到双引号结束" />:匹配标签结尾,保证整个匹配是完整的binding标签
操作步骤(一步到位)
- 打开你的config.xml,按下
Ctrl+H打开替换窗口 - 勾选窗口左下角的正则表达式模式
- 把上面的正则粘贴到查找内容框
- 在替换为框里填
$1(表示只保留我们捕获到的站点URL) - 点击全部替换,瞬间所有非80端口的站点URL就会被提取出来,原文件里的binding标签会被替换成对应的URL,你可以直接复制这些结果整理成列表
额外小技巧
如果你的配置里还有https的binding标签,把正则里的protocol="http"改成protocol="https?",就能同时兼容http和https的配置啦!
内容的提问来源于stack exchange,提问作者Karol Pop
相关产品推荐
相关产品推荐

