"/testing/default.-6ren">
gpt4 book ai didi

c# - 正则表达式的实现

转载 作者:行者123 更新时间:2023-12-03 20:27:38 28 4
gpt4 key购买 nike

我遇到过这段代码,它应该确定动态(重写)url 层次结构中的父 url。基本逻辑是这样的:

"/testing/parent/default.aspx"  --> "/testing/default.aspx"
"/testing/parent.aspx" --> "/testing/default.aspx"
"/testing/default.aspx" --> "/default.aspx"
"/default.aspx" --> null

...

private string GetParentUrl(string url)
{
string parentUrl = url;

if (parentUrl.EndsWith("Default.aspx", StringComparison.OrdinalIgnoreCase))
{
parentUrl = parentUrl.Substring(0, parentUrl.Length - 12);

if (parentUrl.EndsWith("/"))
parentUrl = parentUrl.Substring(0, parentUrl.Length - 1);
}

int i = parentUrl.LastIndexOf("/");

if (i < 2) return null;

parentUrl = parentUrl.Substring(0, i + 1);

return string.Format(CultureInfo.InvariantCulture, "{0}Default.aspx", parentUrl);
}

这段代码可以工作,但对我来说有点味道。它不适用于具有查询字符串的 url。如何使用正则表达式改进它?

最佳答案

查看SO question "Getting the parent name of a URI/URL from absolute name C#"的答案

这将向您展示如何使用 System.Uri 访问 URL 的各个部分。 System.Uri 还允许按照您想要的方式操作 URL(当然,不是自定义逻辑),而不会产生创建无效 URL 的危险。无需破解您自己的函数来解析 URL。

关于c# - 正则表达式的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1848629/

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