环境:VS2005 C#字符串:
...
...<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV></SPAN></FONT></DIV>如上示例,字符串仅由两种元素构成,一个是html标签,另一个就是"&nbsp;" 请问能不能根据这一思路,或者是其它方法,来写一个正则表达式以匹配上面的字符串?

解决方案 »

  1.   

    楼上MM,正则表达式资料我可以google出很多来..
      

  2.   

    string  str =@"<DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> </SPAN> </FONT> </DIV> 
    ";
                
          if(Regex.Match(Regex.Replace(str,@"<[^>*]>",""),@"&nbsp;\s*").Success)
              Console.WriteLine("ok");
            }
    输出ok就是匹配成了
      

  3.   

    写了2个正则。
    分别是@"<[^>*]>"
    和 @"&nbsp;\s*"可以在写一个正则
      

  4.   

     string str = @"<DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> 
    <DIV>&nbsp; </DIV> </SPAN> </FONT> </DIV> 
    ";
                Regex re = new Regex(@"^(<[^>]*>|&nbsp;\s*|\s*)*$");
                Console.WriteLine(re.Match(str).Value);
      

  5.   

    谢谢楼上朋友帮忙,上面正则表达式基本上解决了问题,还想再请教下:示例字符串在实际应用中不是孤立的,而是位于一个html文件内,因此^和$是不是就不用加了?
    \s*|\s*为什么要连续用两个呢?
      

  6.   

    因为html标签会嵌套,就像div中可以包含div一样。^和$表示完全匹配,还是要的!
      

  7.   

    在LCL_data兄弟所提供式子基础上,我加以变化,满足了自己需求:
    Regex reg = new Regex(@"(<[^<>]+?>\s*|&nbsp;\s*)+$");经测试作用良好,嘻嘻,感谢LCL_data,谢谢大家!