如:html="<container:content>  "+
        "  <b:selectText>  "+
        "       <input  type=\"text\"  id=\"a\"/>  "+
        "  </b:selectText> "+  
        "</container:content>  ";用正则表达式??

解决方案 »

  1.   

    我不需要Tidy这样检查这么仔细,它会检查整个页面文档的格式是否符合规范,而不是特定字符串,如:
    public static void main(String[] args)throws Exception{
    String s="<table>" +
    "<tr><td></td></tr>" +
    "<tr><td></td></tr>" +
    "<tr><td></td></tr>" +
    "</table>";
    Tidy tidy=new Tidy(); ByteArrayInputStream  bais=new ByteArrayInputStream (s.getBytes());
    FileOutputStream fos=new FileOutputStream(new File("d:/tidy.xml"));
    tidy.parse(bais, fos);
    }
    就会报错!如何简单的判断如题描述的格式?只需要检查标签名以及内嵌标签名是否完整。。
      

  2.   

    //不知道这里该如何递归匹配,只好用这种笨办法了。挺费资源
    String str = ...;
    String regEx = "<([^<>]+)(/>|>[^<>]*</\\1>)";
    Pattern p = Pattern.compile(regEx);
    Matcher m = p.matcher(str);
    while (m.find()) {
    str = str.replaceAll(regEx, "");
    m = p.matcher(str);
    }
    if (str.equals(""))
    System.out.println("完整");
    else
    System.out.println("不完整");
      

  3.   

    你这要求就可以将其当为XML来验证了,parse通过就是完整的
      

  4.   

    用xml来验证格式要求比较严格,比如<table width="3"height="4" /> 就会报错,因为必需在属性直接加空格,而实际情况这也是经常出现的,允许的。
      

  5.   

    用xml来验证格式要求比较严格,比如<table width="3"height="4" /> 就会报错,因为必需在属性之间加空格,而实际情况这也是经常出现的,允许的。