格式如下:
<名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
<名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
<名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
<名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
<名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
分别提取<名称>与</名称>  和<地址>与</地址>之间的所有数据。百度了很久没有找到答案,只有在这上面来问了,先谢谢大家。

解决方案 »

  1.   


    string str = "<名称>1111</名称><地址>222</地址>";
                var list = Regex.Matches(str, @"(?is)(?<=\<名称\>).*?(?=\</名称\>)").OfType<Match>().Select(t => t.Value).ToList();
      

  2.   


        string yourstr = @"<名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
    <名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
    <名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
    <名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>
    <名称>XXXXXXXX</名称><地址>http://www.XXXXXXXX.com</地址>";
                foreach (Match m in Regex.Matches(yourstr, @"(?is)<(名称)>(.*?)</\1>\s*<(地址)>(.*?)</\3>"))
                {
                    Console.WriteLine(m.Groups[2].Value + "\t\t"+ m.Groups[4].Value);
                }
      

  3.   

    这样更简单   foreach (Match m in Regex.Matches(yourstr, @"(?is)(?<=<(名称|地址)>)(.*?)(?=</\1>)"))
                {
                    Console.WriteLine(m.Value );
                }