如何拆分URL并存储到不同的字符串中

时间:2018-01-24 03:50:44

标签: c# split

我想将我的网址拆分为ftp.akshay.com/a/b/c,然后我想将其拆分为ftp.akshay.com/a/b/c,但有一个问题有时它将是一个非文件路径,如 Y:\A\B\C or U:\A\B\C ,那时我想将其拆分为Y:\A\B\C 我如何拆分字符串。我想与/分开,但这没用。我想为此使用C#。

2 个答案:

答案 0 :(得分:0)

请试试这个

 string[] result = test.Split(new string[] { "/" }, StringSplitOptions.None);
 string s1 = result[0];
 string s2 = "";
 for (int i = 1; i < result.Length; i++)
 {
     s2 = s2 + result[i].ToString() + ((i == (result.Length - 1)) ? "" : "/");
 }

答案 1 :(得分:0)

如果您不想使用URI并在其后面创建逻辑,您可以使用正则表达式手动拆分网址以匹配特定模式,并根据匹配模式的索引进行拆分。

private string[] splitUrl(string url)
{
    Match match = Regex.Match(url, @"\:|\.(.{2,3}(?=/))"); // Regex Pattern
    if (match.Success)  // check if it has a valid match
    {
        string split = match.Groups[0].Value; // get the matched text
        int index = url.IndexOf(split);
        return new string[] 
        { 
            url.Substring(0, index + split.Length),
            url.Substring(index + (split.Length), url.Length - (index + split.Length))
        };
    }

    return null;
}

这就是你调用函数的方式,

string[] urls = splitUrl(@"ftp.akshay.com/a/b/c");

这不是一个完美的解决方案,但它会给你至少你的起点。

此模式 - \:|\.(.{2,3}(?=/))表示匹配:.与2-3个字符串且/之前。