以<开头  以>结尾  但是中间不能出现size这个单词<field type="string" size="10"/> 不能匹配
<input id="a" width="10"/>可以匹配

解决方案 »

  1.   

    private static boolean isValid(String str){
        if(str.charAt(0)!='<'){
            return false;
        }
        if(str.charAt(str.length()-1)!='>'){
            return false;
        }
        if(str.indexOf("size")>0){
            return false;
        }
        return true;
    }
    觉得没有必要正则
      

  2.   

    String str = "<input id=\"a\" width=\"10\" size=11/>";
    logger.info(str.matches("\\<(?!.*?size).*\\>"));
      

  3.   


    var pattern=/^<(.*)(size)(.*)>$/;
    var str="<field type='string' size='10'/>";//能匹配
    var str2="<input id='a' width='10'/>";//不匹配
    if(pattern.test(str))
    {
    alert("有size关键字");
    }
    不知道这样行不行....
    lz是想不匹配 但可以反过来验证...
      

  4.   

    believe的那个 更专业些  !用的是这种正则匹配方式,,,,,
    (?!pattern) 
    负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始