Java 正则表达式验证特殊字符

标签 java regex validation

这似乎是一个众所周知的标题,但我在这方面确实遇到了一个问题。

这是我所拥有的以及到目前为止我所做的。

我已经验证了输入字符串,这些字符是不允许的:

&%$##@!~

所以我这样编码:

 String REGEX = "^[&%$##@!~]";
 String username= "jhgjhgjh.#";
 Pattern pattern = Pattern.compile(REGEX);
 Matcher matcher = pattern.matcher(username);
 if (matcher.matches()) {
     System.out.println("matched");
 }

最佳答案

像这样更改你的第一行代码

String REGEX = "[^&%$#@!~]*";

它应该可以正常工作。字符类之外的 ^ 表示行的开始。 ^ inside a character class [] 表示字符类中字符的否定。而且,如果您不想匹配空用户名,请使用此正则表达式

String REGEX = "[^&%$#@!~]+";

关于Java 正则表达式验证特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822577/

相关文章:

java - 折线未显示在 2 个位置之间,但显示时间和距离

PHP 字母数字正则表达式

c# - 正则表达式匹配不匹配的内容

c# - 如何在代码隐藏中设置 Validation.ErrorTemplate?

python - Django - 部分验证表单

angular - 模型驱动/ react 形式 : Auto mapping from Model to FormGroup ?

java - 使用外部 jar 从命令行创建可执行 jar

java - 在 Linux 机器上配置 Java 7 中的站点异常(exception)列表

java - 内存不足错误

regex - PowerShell正则表达式仅匹配.csv每行中的第一个匹配项