gpt4 book ai didi

c# - 如何使用仅替换 www 的第一次出现

转载 作者:行者123 更新时间:2023-11-30 22:22:39 26 4
gpt4 key购买 nike

在我的 C# 代码中,我有以下代码。如何更改替换以便仅第一次出现的 www 被替换了吗?例如,如果用户输入 www.testwww.com,那么我应该将其保存为 testwww.com。目前根据下面的代码,它保存为 www.com(由于 substr 代码而猜测)。请帮忙。提前致谢。

private string FilterUrl(string url)
{
string lowerCaseUrl = url.ToLower();
lowerCaseUrl = lowerCaseUrl.Replace("http://", string.Empty).Replace("https://", string.Empty).Replace("ftp://", string.Empty);
lowerCaseUrl = lowerCaseUrl.Replace("www.", string.Empty);

string lCaseUrl = url.Substring(url.Length - lowerCaseUrl.Length, lowerCaseUrl.Length);
return lCaseUrl;
}

最佳答案

正如 Ally 所建议的那样。您最好使用 System.Uri。这也可以根据需要替换前导 www。

private string FilterUrl(string url)
{
Uri uri = new UriBuilder(url).Uri; // defaults to http:// if missing
return Regex.Replace(uri.Host, "^www.", "") + uri.PathAndQuery;
}

编辑:尾部斜杠是因为 PathAndQuery 属性。如果没有路径,您只剩下斜线。只需添加另一个正则表达式替换或字符串替换。这是正则表达式的方式。

return Regex.Replace(uri.Host, "^www.", "") + Regex.Replace(uri.PathAndQuery, "/$", "");

关于c# - 如何使用仅替换 www 的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13769759/

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