java - 正则表达式包括和排除特殊字符

标签 java regex

我正在寻找符合以下规则的正则表达式。

允许的字符

字母表:a-z/A-Z
数字:0-9
特殊字符:~@#$^&*()-_+=[]{}|\, 。 ? :
(应该允许有空格)

不允许

特殊字符:< > ' "/; ` %

最佳答案

对于允许使用的字符

^[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$

验证应仅包含允许字符的完整字符串。请注意,- 位于末尾(否则它将是一个范围)并且转义了一些字符。

对于你可以使用的无效字符

[<>'"/;`%]

检查它们。

要将两者组合成一个正则表达式,您可以使用

^(?=[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$)(?!.*[<>'"/;`%])

但您需要一个允许前瞻的正则表达式引擎。

关于java - 正则表达式包括和排除特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10173460/

相关文章:

java - 如何在Android编程中使用Volley并保持代码整洁? (回调问题)

java - 如何获取在geocoding api android中选择的区域的周长?

java - 如何检查正在运行的 java 应用程序的配置 Xmx 值

java - Hibernate/JPA 中注释字段或 getter 方法之间的性能差异

c++ - 微软对 std::regex 的实现

java - bean 名称持续错误

regex - 如何在 R 中使用 grep() 从数据框中选择行

regex - .htaccess URL 重写问题(脚本不加载)

javascript - 正则表达式仅在不是属性值时才替换字符串

ruby - 是否有 ruby​​ 的 gsub 替代品可以在每次匹配时运行一个方法?