求一个 超链接 的正则表达式
VS自带的 http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
这个只能匹配类似这样的
http://xxx.xxx.xxx/xxx.xxx?xxx=xx
https:://xxx.xxx.xxx/xxx.xxx?xxx=xx
http://xxx.xxx.xxx/xxx.xxx
我希望还能匹配这样的
http://xxx.xxx.xxx:8080/xxx.xxx
http://xxx.xxx.xxx:8080/xxx.xxx?xxx=xx
http://xxx.xxx.xxx:8080/xxx.xxx?xxx=xx#yyyy
最后面的yy可以是任意字符串,8080可以是任何端口...
http://mmmm:8080/xxx.xxx?xxx=xx#yyyy (最好也能匹配这个,不好弄的话就算了,我只是为了方便调试...)
不知道该如何改造这个正则?
多谢各位
------解决方案--------------------在那个基础上改进了一下,符合你要求的三种情况,试下
http(s)?://([\w-]+\.)+[\w-]+:\d+/([\w-]+\.)+[\w-]+(\?[\w-]+=[\w-]+)?(#[\w-]+)?
如果是给出的六种形式都要匹配,这样
http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?(:\d+/([\w-]+\.)+[\w-]+)?(\?[\w-]+=[\w-]+)?(#[\w-]+)?
PS:https:://xxx.xxx.xxx/xxx.xxx?xxx=xx
这个例子多了个: