Java正则表达式否定
我用Java正则表达式否定,java,regex,Java,Regex,我用[^abc]找到了字符的否定-除了a、b或c以外的任何字符(否定) 相反的是[abc]-a、b或c(简单类) 现在,我想将两者结合起来,如: System.out.println(Pattern.matches("[set^k]*", "ktest")); // returns true 但我想要的是: 允许所有t、e和s,但拒绝字符串中的所有k 谢谢你的帮助 亲切问候您可以使用: Pattern.matches("[setk&&[^k]]*", "testttteeesk
[^abc]找到了字符的否定-除了a、b或c以外的任何字符(否定)
相反的是[abc]-a、b或c(简单类)
现在,我想将两者结合起来,如:
System.out.println(Pattern.matches("[set^k]*", "ktest")); // returns true
但我想要的是:
允许所有t
、e
和s
,但拒绝字符串中的所有k
谢谢你的帮助
亲切问候您可以使用:
Pattern.matches("[setk&&[^k]]*", "testttteeeskss"); // false
这类似于匹配
s,e,t,k
,但是否定k
。实际上,允许s
、e
和t
是相同的[set]
,但不允许k
,只需使用[set]
。任何未明确列出的内容都将被禁止。使用[set^k]
您允许出现s
e
t
^
和k
。如果您只想s
e
t
而不想k
,请坚持[abc]
,因为它已经排除了k