我没说清楚,我的意思是,需要找到那些xxx,并且xxx后面不能有abc。
所以"\\bxxx\\b"不是我想要的,它不能匹配xxxdef这样的xxx。
而,".*xxx.+"也不是我想要的,它不能保证后面不是abc。

解决方案 »

  1.   

    xxx[^abc] 匹配除了xxxa,xxxb,xxxc以外的xxx
    xxx^abc匹配除了xxxabc以外的xxx此回复参考了jdk1.4.1的 java.util.regex.Pattern 类的帮助,如果还有不清楚,请看帮助
      

  2.   

    lhj(努力加油) ,说什么啊?你试验过么?帮助我不是没看,看了N次~System.out.println("abcfed".matches("abc^fed"));
    System.out.println("abcdef".matches("abc^fed"));结果都是false,我不懂。
      

  3.   

    呵呵,是有点问题,我写过代码试验:
    import java.util.regex.*;public class test_regex {
      public test_regex() {
      }
      public boolean test_match(String str,String regStr) {
        System.out.println("parameter: "+str+" " + regStr);
        Pattern p = Pattern.compile(regStr);
        Matcher m = p.matcher(str);
        return m.matches();
      }
      public static void main(String[] args) {
        test_regex test_regex1 = new test_regex();
        String regStr;
        regStr = ".*xxx[^abc].*";
        System.out.println(test_regex1.test_match("jxxxabcjjj",regStr));
        System.out.println(test_regex1.test_match("jxxxfffdjj",regStr));
        System.out.println(test_regex1.test_match("hxxxadddjj",regStr));
        System.out.println(test_regex1.test_match("gxxxbeeejj",regStr));    regStr = ".*xxx.[]*";
        System.out.println(test_regex1.test_match("jxxxabcjjj",regStr));
        System.out.println(test_regex1.test_match("jxxxfffdjj",regStr));
        System.out.println(test_regex1.test_match("hxxxadddjj",regStr));
        System.out.println(test_regex1.test_match("gxxxbeeejj",regStr));
     }}
      

  4.   

    问题就是要匹配完整abc哪里,还没有测试成功
      

  5.   

    不是的哦,我已经搞定了
    regStr = ".*xxx[~(abc)].*";
    测试过的import java.util.regex.*;public class test_regex {
      public test_regex() {
      }
      public boolean test_match(String str,String regStr) {
        System.out.println("parameter: "+str+" " + regStr);
        Pattern p = Pattern.compile(regStr);
        Matcher m = p.matcher(str);
        return m.matches();
      }
      public static void main(String[] args) {
        test_regex test_regex1 = new test_regex();
        String regStr;
        regStr = ".*xxx[^abc].*";
        System.out.println(test_regex1.test_match("jxxxabcjjj",regStr));
        System.out.println(test_regex1.test_match("jxxxfffdjj",regStr));
        System.out.println(test_regex1.test_match("hxxxadddjj",regStr));
        System.out.println(test_regex1.test_match("gxxxbeeejj",regStr));    regStr = ".*xxx[~(abc)].*";
        System.out.println(test_regex1.test_match("jxxxabcjjj",regStr));
        System.out.println(test_regex1.test_match("jxxxfffdjj",regStr));
        System.out.println(test_regex1.test_match("hxxxadddjj",regStr));
        System.out.println(test_regex1.test_match("gxxxbeeejj",regStr));
     }}
      

  6.   

    楼上的兄弟,你真是太厉害了。  我看过jdk的文档,里面好像从来没有提到过 ~ 这个符号的用法。
      
    能不能介绍一些这方面的资料看看?谢谢先。