我想从字符串中仅列出一些特殊字符(<,>,%,$,^),并允许其他所有内容。 我一直在尝试一些正则表达式,但它们没有用。例如[^%<>]但它不起作用。
String s = "script";
if(s.matches("[^%<>\\$]")){
System.out.println("valid");
}else{
System.out.println("invalid");
}
请提出一些解决方案
答案 0 :(得分:1)
i want to blacklist only some special characters(<,>,%,$,^) from a string and allow everything else.
您可以使用此正则表达式:
^[^%<>^$]+$
PS:要在String#matches
中使用,你甚至不会对开始/结束锚点^ and $
进行排序,并且可以使用这样的代码:
String s = "script";
if( s.matches("[^%<>^$]+") ) {
System.out.println("valid");
} else {
System.out.println("invalid");
}