Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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,我只想将字符串中的一些特殊字符(,%,$,^)列入黑名单,并允许其他所有字符。 我一直在尝试一些正则表达式,但它们不起作用。例如,[^%]但它不起作用 String s = "script"; if(s.matches("[^%<>\\$]")){ System.out.println("valid"); }else{ System.out.println("invalid"); } String s=“script”; 如果

我只想将字符串中的一些特殊字符(,%,$,^)列入黑名单,并允许其他所有字符。 我一直在尝试一些正则表达式,但它们不起作用。例如,[^%]但它不起作用

String s = "script";
    if(s.matches("[^%<>\\$]")){
        System.out.println("valid");
    }else{
        System.out.println("invalid");
    }
String s=“script”;
如果(s.matches(“[^%\\$]”){
System.out.println(“有效”);
}否则{
System.out.println(“无效”);
}
请提出一些解决办法

我只想将字符串中的一些特殊字符(,%,$,^)列入黑名单,并允许其他所有字符。

您可以使用此正则表达式:

^[^%<>^$]+$

请显示您已尝试的内容您认为
s.matches(“[^%\\$]”)应该做什么以及您期望的结果是什么?@skiwi:字符类内部
[和
]不需要转义。它应该对字符串s=”有效。请参阅工作演示:没有
无效,因为您只编写了一些特殊字符的黑名单(,%,$,^)
无效,因为它包含您列入黑名单的字符。但在这两种情况下,它都打印无效…例如:“script”应该有效,“should”应该无效。但在这两种情况下,它都显示为无效
String s = "script";
if( s.matches("[^%<>^$]+") ) {
    System.out.println("valid");
} else {
    System.out.println("invalid");
}