正则表达式包含和排除特殊字符
我找到了一个符合以下规则的正则表达式。
允许的字符
字母表 : a-z / A-Z
数字 : 0-9
特殊字符 : ~ @ # $ ^ & * ( ) - _ + = [ ] { } |\ , .?:
(应允许空格)
不允许
特殊字符 : < > ' “ / ;` %
我找到了一个符合以下规则的正则表达式。
允许的字符
字母表 : a-z / A-Z
数字 : 0-9
特殊字符 : ~ @ # $ ^ & * ( ) - _ + = [ ] { } |\ , .?:
(应允许空格)
不允许
特殊字符 : < > ' “ / ;` %
对于允许的字符,您可以使用
^[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$
以验证应仅包含允许的字符的完整字符串。请注意,它位于末尾(因为否则它将是一个范围),并且会转义一些字符。-
对于可以使用的无效字符
[<>'"/;`%]
以检查它们。
要将两者组合成单个正则表达式,您可以使用
^(?=[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$)(?!.*[<>'"/;`%])
但是你需要一个允许提前查看的正则表达式引擎。
你实际上还没有问过一个问题,但假设你有一个问题,这可能是你的答案......
假设所有字符,除了“特殊字符”是允许的,你可以写
String regex = "^[^<>'\"/;`%]*$";