Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式否定_Java_Regex - Fatal编程技术网

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