我正在找到一个符合以下规则的正则表达式。
允许的字符
字母:az / AZ
数字:0-9
特殊字符:~ @ # $ ^ & * ( ) - _ + = [ ] { } | \ , . ? :(
应该允许空格)
不允许
特殊字符 : < > '" / ; ` %
对于允许的字符,您可以使用
^[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$
验证应仅包含允许的字符的完整字符串。请注意,-
它位于末尾(因为否则它将是一个范围)并且一些字符被转义。
对于无效字符,您可以使用
[<>'"/;`%]
检查他们。
要将两者组合成一个正则表达式,您可以使用
^(?=[a-zA-Z0-9~@#$^*()_+=[\]{}|\\,.?: -]*$)(?!.*[<>'"/;`%])
但是您需要一个允许前瞻的正则表达式引擎。
你实际上没有问过问题,但假设你有一个问题,这可能是你的答案......
假设所有字符,除了“特殊字符”,你可以写
String regex = "^[^<>'\"/;`%]*$";
[a-zA-Z0-9~@#\^\$&\*\(\)-_\+=\[\]\{\}\|\\,\.\?\s]*
如果您只想允许将其包装在 ^$ 或您认为合适的任何其他分隔符中,这将进行匹配,如果您这样做,则不需要特定的禁止逻辑。