将一些特殊字符列入黑名单,并允许其他一切

时间:2013-12-07 17:45:40

标签: java regex

我想从字符串中仅列出一些特殊字符(<,>,%,$,^),并允许其他所有内容。 我一直在尝试一些正则表达式,但它们没有用。例如[^%<>]但它不起作用。

String s = "script";
    if(s.matches("[^%<>\\$]")){
        System.out.println("valid");
    }else{
        System.out.println("invalid");
    }

请提出一些解决方案

1 个答案:

答案 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");
}