Regex reg11 = new Regex(@"(?is)(?=</h3>)(?:(?!<h3).)+", RegexOptions.Compiled);1.这个正则的意思是取</h3>和下可以个<h3>之间的值,现在有个问题的就是,取出来的值总是开头包含</h3>.求高人帮忙改过。2.同时取出的值中还包含"/n","/b"的东西,想要去掉,想问高人可否通过改善上面的正则直接去掉这些东西,得到最终的结果。我想如果不能我就再写个替换的表达式吧

解决方案 »

  1.   


                string yourHTML = @" <h3 height=er"">test</h3>";            Regex reg = new Regex(@"(?<=<(\w+).*?>).*(?=<\/\1>)");            foreach (Match m in reg.Matches(yourHTML))
                {
                    Console.WriteLine(m.Value);
                }
      

  2.   

    看风格像过客的,但估计是吧过客的正则修改了的,修改为:
    Regex reg11 = new Regex(@"(?is)(?<=</h3>)(?:(?!<h3).)+", RegexOptions.Compiled);
      

  3.   

                    Regex reg11 = new Regex(@"(?is)(?=</h3>)(?:(?!<h3).)+", RegexOptions.Compiled);
                    Regex reg12 = new Regex(@"(?is)(?=</h2>)(?:(?!<h2).)+", RegexOptions.Compiled);
                    Regex reg13 = new Regex(@"(?is)(?=</em>)(?:(?!<em).)+", RegexOptions.Compiled);因为这个程序里要做很多次的正则,所以我想找一个通用的写法,例如上面我就传参数h2,h3,em就可以了。但楼上的写法好像满足不了这个。请您帮我想个可以不改变上面大体格式的写法可以么
      

  4.   

    去掉</h3>这个已解决谢谢各位高手,再请问有知道第二个问题的么?
      

  5.   

    贴出你想要什么。你的正则如果有错误,别人也猜不到你想要什么的。你贴例子。一个好的正则提问应该是这样的:
    参考这个帖子的提问
    http://topic.csdn.net/u/20100823/23/96eab644-27cd-457a-847a-9ce9838366f1.html
      

  6.   

    2.同时取出的值中还包含"/n","/b"的东西,想要去掉,想问高人可否通过改善上面的正则直接去掉这些东西,得到最终的结果。我想如果不能我就再写个替换的表达式吧没看到你写了文字。没办法,捕获到的结果。再replace,吧不要的去掉,一条语句捕获,最终就会产生多次捕获还要拼接更麻烦。