使用正则表达式解析RL.docVIP

  • 1
  • 0
  • 约 5页
  • 2015-12-27 发布于贵州
  • 举报
使用正则表达式解析RL

在开发http相关程序时,经常会碰到从网络链接URL中提取协议名、服务器、路径等目标对象,如果仅使用C/C++字符串操作函数,那么则显得有点麻烦且代码不易维护,其实关于文本内容的解析工作,都可优先考虑使用正则表达式库来解决处理,关于C++方面的正则库也有很多种,如atl,pcre,boost等。下面就使用boost中的regex来解析URL提取协议名、服务器、路径为目标说明其用法。 ???(1)协议名:在URL可有可无,如果有时则后面必跟着://,如果没有,则默认为使用http协议。通常还有其它的协议如https、ssl、ftp、mailto等。因此匹配这一部分的正则表达式应该是(?:(mailto|ssh|ftp|https?)://)?,注意这个表达式本身捕获了协议名,但不包括://。 ???(2)服务器:这一部分或是名称,如,或是IP,如;另外还可以带端口号,如:8080。关于匹配域名的正则表达式为(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+(?:com|net|edu|biz|gov|org|in(?:t|fo)|(?-i:[a-z][a-z])),表达式(?:com|net|edu|biz|gov|org|in(?:t|fo)匹配了com,net,edu,biz,gov,org,int,info等常见的域名,而(?-i:[a-z][a-z]

文档评论(0)

1亿VIP精品文档

相关文档