为了账号安全,请及时绑定邮箱和手机立即绑定

如何用`hostnametld`替换字符串中的所有URL?

如何用`hostnametld`替换字符串中的所有URL?

料青山看我应如是 2021-07-30 02:11:36
例如:http://stackoverflow.com/questions/ask => stackoverflowcom以下工作,但不适用于在httpsurl 之外的角落情况。import refrom urllib.parse import urlparsedef convert_urls_to_hostnames(s):    try:        new_s = re.sub("http\S+", lambda match: urlparse(match.group()).hostname.replace('.','') if match.group() else urlparse(match.group()).hostname, s)        return new_s    except Exception as e:        print(e)    return s这主要是有效的。s = "Ask questions here: http://stackoverflow.com/questions/ask"print(convert_urls_to_hostnames(s))正确返回: Ask questions here: stackoverflowcom但是,如果http*s在 url 之外的字符串中的任何位置找到它,它就会失败,如下所示:s = "Urls may start with http or https like so: http://stackoverflow.com/questions/ask and https://example.com/questions/"print(convert_urls_to_hostnames(s))这将返回:'NoneType' object has no attribute 'replace'。预期收益: Urls may start with http or https like so: stackoverflowcom and examplecom
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信