java - java中获取所有数字和少数特殊字符的正则表达式

标签 java regex

我是正则表达式新手,希望允许包含以下字符的消息得到批准。包含任意数量的数字和特殊字符的消息,如 < > . * ; " , # % & ) ( = + - ! space new_line

其余字符如@ ~ { [ alphabetical letters等等..不应获得批准。

java.util.regex.Pattern my_pattern = null;
my_pattern = Pattern.compile("^.*(0-9|<|>|.|*|;|\"|,|#|%|&|\\(|\\)|=|\+|-|!|\s|\n).*");

最佳答案

您可以使用字符类:

Pattern.compile("^[0-9<>.*;\",#%&()=+!\\s-]+$");

不需要在字符类中转义这些特殊字符,并且比使用多个管道的交替更有效。另请注意,我删除了 \n 因为 \s 已经匹配换行符。

关于java - java中获取所有数字和少数特殊字符的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213316/

相关文章:

java - 如何将环境变量添加到 android Runtime.getRuntime().exec 命令中?

java - 如何使用正则表达式拆分字符串而不消耗拆分器部分?

php - 正则表达式几句话

java - java中的完美数使用方法做作业

java - 在 Java 中,如何测试数组是否包含相同的值?

regex - 快速正则表达式匹配

php - 在 PHP 中使用正则表达式作为请求处理程序是否不好?

regex - 如何从 Perl 中的字符串中提取单个字符或封闭的分组?

java - JPQL 新对象实例化

java - 在使用存储库模式时,如何使用 Hibernate 响应式(Reactive) Panache 库在 Quarkus 3.0.0.RC2 中响应式(Reactive)列出具有不同参数的实体?