比如说有一个字符串string s = "<span id='spanTest'>This is a <br /> sample!</span>";
请问用正则表达式如何提取出span标签中间的值,即“This is a <br /> sample!”,值是变化的,而且可能含有多个HTML标签。不是网页,不能使用innerHTML等属性。

解决方案 »

  1.   

                string strContent = @"<span id='spanTest'>This is a <br /> sample! </span>";            Regex reg = new Regex(@"(?i)(?<=<span[^>]+>).*?(?=</span>)");
                Console.WriteLine("/*\n------输出结果------------");            MatchCollection mc = reg.Matches(strContent);
                foreach (Match m in mc)
                {
                    Console.WriteLine(m.Groups[0].ToString());
                }
                /*
                ------输出结果------------
                This is a <br /> sample!
                */
      

  2.   

    string s = " <span id='spanTest'>This is a <br /> sample! </span>";
                Regex reg = new Regex(@"(?<=<span[^<]*>).*(?=</span>)");
                MessageBox.Show(reg.Match(s).Value);
      

  3.   

    你那个<span 中是否还有<span?
      

  4.   


    那怎么知道你要取的是哪个span?
      

  5.   

    6楼的有道理,如果span里面再嵌套span,就很复杂了。还没想到解决方法。
      

  6.   


    不是没有解决办法,是你自己对需求不也是很清楚嵌套在.NET中用平衡组就可以解决了