微博短地址识别正则表达式

最近做一个微博类的工作站,哭哭找没找到,只能自己根据需求写了一个
识别以中文和空格作为结束符号

短地址识别正则如下:

((http|https|ftp|ftps):\/\/)?([a-zA-Z0-9-]+\.){1,5}(com|cn|net|org|hk|tw)((\/(\w|-)+(\.([a-zA-Z]+))?)+)?(\/)?(\??([\.%:a-zA-Z0-9_-]+=[#\.%:a-zA-Z0-9_-]+(&)?)+)?

解释:
((http|https|ftp|ftps):\/\/)?
表示是否带有请求的头部
([a-zA-Z0-9-]+\.){1,5}(com|cn|net|org|hk|tw)
表示域名的本身,包含了5极和域名后缀
((\/(\w|-)+(\.([a-zA-Z]+))?)+)?(\/)?
表示域名后紧跟的域名地址
包含了直接跟"/"、"/***/***/**/**.**"的情况
(\/)?(\??([\.%:a-zA-Z0-9_-]+=[#\.%:a-zA-Z0-9_-]+(&)?)+)?
表示编码后的url地址
包含了"?***=***"、"?***=***&***=***#sdsd"的情况

缺点:
与新浪微博一样,容易将话题的#符号一起作为短地址的一部分

原文地址:https://www.cnblogs.com/zcy_soft/p/2802694.html