def _parse_rfc1738_args(url):
pattern = re.compile(r'''
(?P<name>[\w\+]+)://
(?:
(?P<username>[^:/]*)
(?::(?P<password>.*))?
@)?
(?:
(?:
\[(?P<ipv6host>[^/]+)\] |
(?P<ipv4host>[^/:]+)
)?
(?::(?P<port>[^/]*))?
)?
(?:/(?P<database>.*))?
''', re.X)
m = pattern.match(url)
if m is not None:
components = m.groupdict()
ipv6 = components.pop('ipv6host')
ipv4 = components.pop('ipv4host')
components['host'] = ipv4 or ipv6
return components
else:
raise ValueError('wrong url format')
评论列表
文章目录