通过正则表达式验证url的合法性
"""
data: 2019/5/27 13:56
"""
import re
def legal_:
pattern = re.compile(r'^(http|https|ftp|rtsp|mms)://' # 头部协议
r'(((([0-9a-za-z_!~*().&= $%-] :)?[0-9a-za-z_!~*().&= $%-] @)?' # ftp协议中的test@test部分
r'([0-9]{1,3}.){3}[0-9][0-9]{1,3})|' # ip地址,类似于172.25.254.250
r'[0-9a-za-z_!~*()-] .' # 域名的头部
r'([0-9a-za-z][0-9a-za-z-]{0,61})?[0-9a-za-z].' # 二级域名
r'[a-z]{2,6}' # 后缀,例如.com和.museum .cn
r'(:[0-9]{1,4})?' # 端口号
r'((/?)|' # 后面有没有反斜杠
r'(/[0-9a-za-z_!~*().;?:@&= $,%#-\|\{\}] ) /?)$)') # 反斜杠后面的内容
result = re.match(pattern, url)
if result == url:
return true
else:
return false