【问题标题】:How to remove www, http/https and other strings in URL in C#如何在 C# 中删除 URL 中的 www、http/https 和其他字符串
【发布时间】:2016-06-09 03:46:19
【问题描述】:

例如我有这个字符串

http://www.merriam-webster.com/dictionary/sample

我想要的是只返回merriam-webster.com 我打算使用.Replace() 但我认为这个问题有更好的方法。

【问题讨论】:

  • 你可以看到这个link
  • 这个值是从哪里来的?

标签: c# string parsing


【解决方案1】:

如果你正在为 Winforms 工作,那么

string url = "http://www.merriam-webster.com/dictionary/sample";

UriBuilder ub = new UriBuilder(url);

MessageBox.Show(ub.Host.Replace("www.",""));

对于网络,

Get host domain from URL?

【讨论】:

  • 如果 url 是这样的 http://www.merriam-websterwww.com/dictionary/sample 怎么办?
【解决方案2】:

这个怎么样

System.Uri uri = new Uri("http://stackoverflow.com/search?q=something");
string uriHost = uri.Host;

?

【讨论】:

  • Uri.Host 仍然返回 www,但我想我会用 .Replace 来解决这个问题
【解决方案3】:

此处的答案不处理“http://abcwww.com”之类的情况。 检查网址是否以“www”开头。在更换之前。

if (url.StartsWith("www.", StringComparison.OrdinalIgnoreCase))
    url = url.Replace("www.", string.Empty);

【讨论】:

  • 你能解释一下它是如何失败的吗?
  • 啊,StackOverflow 删除了 http 和 www。来自我上面的原始评论。试图说“http//www.merriam-websterwww.com/dictionary/sample”失败了。它返回 merriam-webstercom。 dotnetfiddle.net/DSAHnU.
  • 我选择了 url = url.Remove(0,4);
【解决方案4】:

你可以用这个:

        var a = "http://www.merriam-webster.com/dictionary/sample";
        var b = a.Split('.');
        var c = b[1] +"."+ b[2].Remove(3);

【讨论】:

    【解决方案5】:

    您可以利用System.Uri 类:

    System.Uri uri = new Uri("https://www.google.com/search?q=something");
    string uriWithoutScheme = uri.Host + uri.PathAndQuery + uri.Fragment;
    

    或者你可以在下面使用:

    UriBuilder ub = new UriBuilder("https://www.google.com/search?q=something");
    currentValue = ub.Host.Replace("www.", "");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 2011-09-14
      • 2017-03-31
      • 2017-08-28
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多