从一篇文章中(String s1)截取一部分字符串(String s2),这篇文章中带有HTML标记。现在想实现个功能就是截取后可以检查标记,如果发现标记不对,比如截取出<XXX而没有大于号,或者截取出<XXX>没有关闭元素,那么他会去检查s1,并且重新截取出最靠近原先位置的,又能让HTML标记合法的字符串。若有哪位达人可以帮助提供一段代码解决此问题,小弟我谢谢了先

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【magic256】截止到2008-07-25 19:37:10的历史汇总数据(不包括此帖):
    发帖的总数量:13                       发帖的总分数:540                      每贴平均分数:41                       
    回帖的总数量:108                      得分贴总数量:39                       回帖的得分率:36%                      
    结贴的总数量:13                       结贴的总分数:540                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    用Stack做怎么样
    堆栈特点就是LIFO,正好符合标签不能交叉嵌套的特点
    至于单个标签的检查应该不是很困难 
    再有就是根据标签是< >  < />决定标签是否入栈(前者入栈,后者不入栈)我是新手,正在学习
      

  3.   

    类似与从网页中抽取正文啊
    有个工具:HTMLParser
    或者你可以使用标签密度来抽取你想要的内容
      

  4.   

    好象没有现成的代码,正则表达式,还要看特定情况来使用。
    如果是JDK1.6,String类直接有个函数可以进行字符串的匹配定位。
    如果不是,有兴趣的话,楼主看一看模式匹配的相关内容,自己编一个程序来进行吧。
      

  5.   

    建议先解析HTML,然后再分析内容。解析HTML可以使用HTMLParser
    http://htmlparser.sourceforge.net/
      

  6.   

    建议想其他的办法吧,正则表达式不是语法分析器,根本做不到去检查 HTML 语法。
      

  7.   

    其实我也是火龙果的fans,嘿嘿~··
      

  8.   

    这里用了个前向引用(back reference),可以理解为一个递归检查吧