正则表达式的实现 - c#

我遇到了这段代码,该代码应该确定动态(重写)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);
}

该代码有效,但对我来说很香。它不适用于具有查询字符串的网址。如何使用正则表达式进行改进?

参考方案

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

这将向您展示如何使用System.Uri访问URL的段。 System.Uri还允许以您想要的方式(不是自定义逻辑)来操纵URL,而没有创建无效URL的危险。无需破解您自己的函数即可剖析URL。

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

Java Regex:将整个单词与单词边界匹配 - java

我正在尝试使用Java检查字符串是否整体上包含一个单词。以下是一些示例:Text : "A quick brown fox" Words: "qui" - false "quick" - true "quick brown" - true "ox" - fal…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

json数组,其中in数组返回错误?坏字符串 - javascript

我将json字符串文件解析为python,并且始终返回error。我使用了在线json格式化程序和验证器,它们也返回错误,因此我需要帮助使我的json正确并告诉我错误 [{ "sentence_id": "TR.00001", "sentence": { "text": …

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…