java - 将一些特殊字符列入黑名单并允许其他所有字符

标签 java regex

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

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

请提出一些解决方案

最佳答案

i want to blacklist only some special characters(<,>,%,$,^) from a string and allow everything else.

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

^[^%<>^$]+$

PS:用于 String#matches你甚至没有排列开始/结束 anchor ^ and $并且可以使用这样的代码:

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

关于java - 将一些特殊字符列入黑名单并允许其他所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20444484/

相关文章:

java - 上下文配置和@PropertySource

java - 语法错误,插入 "... VariableDeclaratorId"以完成 FormalParameterList

java - 非捕获组正则表达式在 Java 中不起作用

Java Map<String, Set<String>> 初始化类型

java - 开始 Activity 并保持之前的 Activity 数据完好无损

java - 在防止输入错误时使用异常

javascript - 正则表达式匹配模式 x 但返回任意字符串 y

regex - 有没有办法有效地索引包含正则表达式模式的文本列?

php - 用于向 HTML 文档中的 .js 和 .css 引用添加版本号的正则表达式

regex - Powershell RegEx - 捕获 "too much"(不遵守非贪婪指标?)