在一个文件中有这样的字符串PRIMARY INDEX
INDEX
INDEX
INDEX要求匹配出前面没有出现PRIMARY关键字的字符串"INDEX"

解决方案 »

  1.   

    String str = "A is a PRIMARY INDEX but B just is an INDEX!";
    Pattern pattern = Pattern.compile("(?<!PRIMARY)\\s+INDEX");
    Matcher matcher = pattern.matcher(str);
    while(matcher.find()){
    System.out.println("Appears in index " + matcher.start() + " to " + matcher.end());
    }
      

  2.   

    java.util.regex.PatternSyntaxException: Unknown inline modifier near index 2
    (? <!PRIMARY)\s+INDEX[^\)]+\)
      ^
    去掉空格也匹配不出来
      

  3.   

    (?<!PRIMARY\\s)INDEX
    这样可以了