【问题标题】:Split a string so that it loses http:// and anything after the '.'拆分字符串,使其丢失 http:// 和 '.' 之后的任何内容。
【发布时间】:2017-04-01 10:59:47
【问题描述】:

我需要解析一个 url,以便只有我的服务器显示“NA30” 但是,当我进行拆分时,我似乎无法获得 na30。我试过用'.'修剪。和'/',我想我只是弄错了数组部分。有什么指导吗?

链接 https://na30.salesforce.com

我目前正在做的事情

    string thisUrl;
    if (Helper.InstanceUrl.Contains(@"://"))
    {
        thisUrl = Helper.InstanceUrl.Split(new[] { "://" }, 2, StringSplitOptions.None)[1];
            return thisUrl.Split('/')[0].Split('.')[0];
    }
    return "";

【问题讨论】:

  • 你已经有了答案,但我还是很好奇你遇到了什么问题?我试过你的代码,它为我返回“na30”。如果有不同的问题,这里的答案可能不是您所需要的。

标签: c# url split


【解决方案1】:

你也可以通过 Uri 类找到你的字符串

Uri u = new Uri("https://na30.salesforce.com");
Console.WriteLine(u.Host.Split('.')[0]);

值得一读的问题是What's the difference between Uri.Host and Uri.Authority

【讨论】:

  • 该死的,你打败了我。我打算做同样的事情,即使是变量名......
  • 正是我需要的比我想出的更干净!谢谢!
  • 我建议的一点改进:检查它是否以www开头,如果是则返回数组的第一项。
【解决方案2】:

您可以使用正则表达式仅保留域的第一部分。

Regex.Match(url, @"//([^\.]+)").Groups[1].Value

http://rextester.com/URF41242

【讨论】:

  • 您不必在字符类中分隔句点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
  • 1970-01-01
  • 2021-07-06
相关资源
最近更新 更多