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