java中不包含子串“party”的所有字符串,用正则表达式如何写?
我试过 .*[^(party)].* 不行。

解决方案 »

  1.   

    "aapartybb".indexOf("party");//最简单了~
      

  2.   

    我试过 .*[^(party)].* 不行。
    ====================
    @(#)&@#&%)@
    ^.*[^party].*$
    小括号去掉
      

  3.   

    如果是纯粹地想看看字符串中是否包含有 party 的话,建议采用 1 楼的方法。public class Test {
        public static void main(String[] args) {
        String[] strs = {"abcadfparty", "afdasfadf", 
                    "partydfasfadsf", "adfadfpartyadfafd", 
                    "party", "", "part"};
            // 如果不允许空字符串的话,可以改为 (?:(?!party).)+
            String regex = "(?:(?!party).)*";
            for(String str : strs) {
                System.out.println(str.matches(regex) + "\t" + str);
            }
        }
    }
      

  4.   

    [^party]是错误的.....
    这个想法太想当然了...我以前也犯过这个错误.[^party]的意思是这个位置上的字符不能含有p,a,r,t,y如果非要用正则的话就要用火龙果说的那种用零宽断言...
    ps:to 火龙果:似乎有正则的地方就有你啊~哈
      

  5.   

    火龙果,非常感谢!!!
    如果要是文本里有换行的可以这样写:
    (?:(?!party).)?
      

  6.   

    火龙果,非常感谢!!! 
    如果要是文本里有换行的可以这样写: 
    (?:(?!party).)+?
      

  7.   

    火龙果 能具体解释一下这个表达式(?:(?!party).)* 的匹配过程么 我有点看不懂