gpt4 book ai didi

c# - 在 C# 中获取域和子域的正则表达式

转载 作者:行者123 更新时间:2023-11-30 14:05:55 25 4
gpt4 key购买 nike

我需要根据当前 url 正确获取域/子域。这是为了正确地从数据库中获取数据并使用正确的参数进一步调用 web api 所必需的。

特别是,我面临着本地和生产 URL 的问题。例如。

在本地,我有

http://sample.local.example.com 
http://test.dev.example.com

在生产中,我有

http://client.example.com 
http://program.live.example.com

我需要

Subdomain as: sample / test / client / program
Domain as: exmpale

到目前为止,我尝试使用带有以下代码的 C# 来识别相同的内容。它在我的本地运行良好,但我相信这会在某个时间点产生生产问题。基本上,对于 Subdomain,获取第一部分,对于 Domain,获取 ''.com'' 之前的最后一部分

 var host = Request.Url.Host;
var domains = host.Split('.');
var subDomain = domains[0];
string mainDomain = string.Empty;
#if DEBUG
mainDomain = domains[2];
#else
mainDomain = domains[1];
#endif

return Tuple.Create(mainDomain, subDomain);

最佳答案

我认为 Linq 应该可以帮助您,而不是正则表达式。尝试:

public static (string, string) GetDomains(Uri url)
{
var domains = url.Host.Substring(0, url.Host.LastIndexOf(".")).Split('.');
var subDomain = string.Join("/", domains.Take(domains.Length - 1));
var mainDomain = domains.Last();
return (mainDomain, subDomain);
}

"http://program.live.example.com" 的输出

example
program/live

Try it Online!

关于c# - 在 C# 中获取域和子域的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52219145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com