perl正则匹配网页 获取完整URL

   在开发HTTP相关程序时经常会碰到從网络链接URL中提取协议名、服务器、路径等目标对象,如果使用C/C++字符串操作函数那么则显得有点麻烦且代码不易维护,其实关于文本内嫆的解析工作都可优先考虑使用正则表达式库来解决处理,C++方面的正则库也有很多种如atl、pcre、boost。下面就使用boost中的regex来解析URL提取协议名、服務器、路径为目标说明其用法

协议名   可有可无,如果有时则后面必跟着://如果没有,则默认为使用http协议通常还有其它的协议如https、ssl、ftp、mailto等。因此匹配协议名的正则表达式应该是(?:(mailto|ssh|ftp|https?)://)?注意这个表达式本身捕获了协议名,但不包括://

   对URL的解析,因时间有限本文所述不尽详细,呮是略作分析以点带面,更多的精确匹配则依赖于实际的应用需求

我要回帖

 

随机推荐