C# 使用/slash拆分数组

C# 使用/slash拆分数组,c#,C#,从我的数组字符串中的调试器中,我得到了以下信息 “/mercedes-benz/190 class/1993/”class=“canonicalLink”数据qstring=“?sub=轿车”>1993 我希望在每个“/”之后拆分文本,并将其转换为字符串[],下面是我的工作 Queue<string> see = new Queue<string>(); //char[] a = {'\n '}; List<car_facts> car_fac

从我的数组字符串中的调试器中,我得到了以下信息


“/mercedes-benz/190 class/1993/”class=“canonicalLink”数据qstring=“?sub=轿车”>1993

我希望在每个“/”之后拆分文本,并将其转换为字符串[],下面是我的工作

Queue<string> see = new Queue<string>(); //char[] a = {'\n '};
       List<car_facts> car_fact_list = new List<car_facts>();
       string[] car_detail;
       foreach (string s in car)
       {

           MatchCollection match = Regex.Matches(s, @"<a href=(.+?)</a>",
            RegexOptions.IgnoreCase);

            // Here we check the Match instance.
            foreach(Match mm in match)
            {
                // Finally, we get the Group value and display it.
                string key = mm.Groups[1].Value;
                //key.TrimStart('"');
                //key.Trim('"');
                key.Trim();

                **car_detail = Regex.Split(key, "//");**//I tried with strin.Split as well and tried many combination of seperator ,

                see.Enqueue(key);
            }
Queue see=new Queue()//字符[]a={'\n'};
List car_fact_List=新列表();
字符串[]车辆详细信息;
foreach(车内的字符串s)
{

MatchCollection match=Regex.Matches,@“不清楚为什么在这里使用双斜杠

string[] details = key.Split('/');
应该可以正常工作。(请注意,前斜杠不必在C#中转义。)例如:

using System;

class Test
{
    static void Main()
    {
        string text = "/mercedes-benz/190-class/1993/";
        string[] bits = text.Split('/');
        foreach (string bit in bits)
        {
            Console.WriteLine("'{0}'", bit);
        }
    }
}
输出:

''
'mercedes-benz'
'190-class'
'1993'
''
空字符串是由于前导斜杠和尾随斜杠造成的。如果要避免这些,可以使用

string[] details = key.Split(new[] {'/'}, StringSplitOptions.RemoveEmptyEntries);
注:

  • car\u facts
    在C#中是一个非常非传统的名称。通常你会有类似于
    CarFacts
    (或者可能只是
    car
    CarInfo
    等)。同样的
    car\u facts\u list
    通常会是
    carFactList
    或类似的名称

  • 此代码不符合您的预期:

    key.Trim();
    
    字符串在.NET中是不可变的-因此
    Trim()
    返回对新字符串的引用,而不是更改现有字符串的内容。您可能需要:

    key = key.Trim();
    
  • 您当前正在为
    car\u detail
    指定一个值,但从未使用它。为什么

  • >P>使用正则表达式解析HTML通常是一个非常糟糕的想法。考虑使用或类似的东西。


@RobustRob:它肯定会起作用-我将给出一个简短但完整的示例。请提供比“它不起作用”(原文如此)更多的信息。与您预期的相比,它做了什么?我得到的是相同的“$[link]”>$[title],这里有一件事,我告诉你们这些来自调试器中的值的结果,我使用的是VS2010 WPF C#app@RobustRob当前位置完全不清楚您的意思,但请尝试我的简短但完整的程序-它可以工作。我看不出您在调试器中执行的操作,但如果您发布类似的简短但完整的程序来演示问题,我将能够看到这一点。还要阅读关于代码的各种注释。HTML Agility Pack有非常糟糕的文档,很少有示例