abc bac abc cab bac提取 不是 abc 的 字符组 [^(abc)]这样不行呢?

解决方案 »

  1.   

    你这样连 abc (abc后有空格)都能匹配到,因为他只要不是abc就可以了.
    而不是你想要的分割效果,如果这么简单,何不split后再判断呢?
      

  2.   

    2.中括号:正则表达式中,中括号“[]”用来自定义能够匹配“多种字符”的表达式,即指定可以取的字符范围,例如:[ab5@],匹配 “a” 或 “b” 或 “5″ 或 “@”。与小括号不同,中括号不会将其内部的字符作为整体看待,即便在中括号中套小括号,“[(12)3]”和“[123]”的匹配效果相同,因此,如果需要匹配“12”整体或者是匹配“3”,则应该使用小括号来表达:“(12)|3”或“((12)|3)”
      

  3.   

    []里边不能分组 var str = "abc bac abc cab bac",
    strbuff = " " + str + " ";
    strbuff = strbuff.replace(/\s+abc\s+/g, ' ');
    alert(strbuff.replace(/^\s+|\s+$/g, ''));或者用split()
      

  4.   

    var except = "abc";
    var reg    = new RegExp("\\S+", "g");
    var str    = "abc bcd bca acb ddd efff 中文abc";
    var m, ret = [];while( m = reg.exec(str) ){
       if(m != except){   
           ret.push(m);
       }
    }alert(ret.join("\n"));
      

  5.   

    var arr = ['abc','bac','abc','cab','bac'];
    var reg = /^(?!abc$).*$/
      

  6.   

    先用replace去掉所有你不想要的字符,再分组。
      

  7.   

    ()在[]里面是没有意义的,lz那样写[^(abc)]匹配的是非(、a、b、c、)这五个字符
    3楼那头像倒是是人名大会堂还是章鱼爪?
      

  8.   

    ()在[]里面是没有意义的,lz那样写[^(abc)]匹配的是非(、a、b、c、)这五个字符
    3楼那头像到底是人名大会堂还是章鱼爪?
      

  9.   

    var reg = /^(?!abc\b).*$/