求判断网址的正则表达式

我写了一个,但是有下级链接地址的也不能添加....
2024-12-14 03:11:14
推荐回答(1个)
回答1:

“((http|https|ftp):(\/\/|\\\\)((\w)+[.])
{1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(((\/[\~]*|\\[\~]*)(\w)+)|[.]
(\w)+)*(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)
+)*)*)”(不含外侧中文引号),
解析:要判断字符串是否为网址,需要下面几个条件。
条件一:常见的网址是以http://、https://或ftp://开头,而这
部分转换为正则表达式就为(http|https|ftp):(\/\/|\\\\)。
条件二:在http://后面必须要紧跟一个单词字符(一般为www),
然后就是字符“.”(这样的组合必须出现一次或多次),最后就是域
名(net、com、cn或数字的IP地址等),这部分转换为正则表达式就
为((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})。
条件三:在完整的链接后,可能会出现下一级或更多级的目录,
甚至是“~”符号,此条件变为正则表达式为(((\/[\~]*|\\[\~]*)
(\w)+)|[.](\w)+)*。
条件四: 链接的末尾还可以带有参数,如前面提到的230.
aspx&e=9690或是?Page=2&action=display等,换为正则表达式为(((([?]
(\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*。