网址的正则表达式

通过正则表达式来判断字符串是否为常见的网址:

1.常见的网址通常以http://,https://,ftp://开头,这一部分对应的正则表达式为“(http|https|ftp)://”。

2.接着是字符串(例如“www”),后面加“.”,这种组合必须出现一次或多次(无“www”也可以),这一部分对应“([\w-]+\.)+”。

3.接下来是域名,考虑到域名的多样性,将常见的两个字符以上的域名(如net,com等)单独表示,由两个字符组成的常见域名(cc,tv等以及国际域名如cn,hk等)表示为“[a-z]{2}”,所以这一部分表示为“(net|com||org|gov|edu|mil|info|travel|pro|museum|biz|[a-z]{2})”。

4.在完整的网址后,通常还有下一级的目录,以“/”来区别目录,可能有0个或多个,表示为“(/[\w-~#]+)*”,还可能是asp,html等后缀名,可能有0个或者一个,表示为“([\w-]+\.[\w]{2,4})?”,所以这部分表示为“(/[\w\-~#]+)*(/[\w-]+\.[\w]{2,4})?”。可

5.链接的末尾还可能附带参数(如page=1&action=2等),其中常见的符号有?,=,&,%,_等,并且可能有多条参数,那么可以表示为“([\?=&%_]?[\w-]+)*”。



结合IP地址的正则表达式,参考http://blog.csdn.net/allen_0730/article/details/51315133

总结起来就是

(http|https|ftp)://((((25[0-5])|(2[0-4]\d)|(1\d{2})|([1-9]?\d)\.){3}((25[0-5])|(2[0-4]\d)|(1\d{2})|([1-9]?\d)))|(([\w-]+\.)+(net|com|org|gov|edu|mil|info|travel|pro|museum|biz|[a-z]{2})))(/[\w\-~#]+)*(/[\w-]+\.[\w]{2,4})?([\?=&%_]?[\w-]+)*



REF:在检查过程中,发现一个问题:是否需要将4和5的部分用一个小括号并起来并且加上“?“。答案是不需要,4和5中各部分都可能不出现,已经用“?”和“*”标明了。

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值