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

时间:2012-04-16 11:46:03

标签: java regex

我找到一个符合规则的正则表达式。

允许的字符

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

不允许

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

3 个答案:

答案 0 :(得分:34)

对于允许的字符,您可以使用

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

验证应该只包含允许字符的完整字符串。请注意,-位于最后(因为否则它是一个范围)并且会转义一些字符。

对于无效字符,您可以使用

[<>'"/;`%]

检查它们。

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

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

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

答案 1 :(得分:8)

你实际上没有问过一个问题,但假设你有一个问题,这可能就是你的答案......

假设允许除“特殊字符”之外的所有字符,您可以编写

String regex = "^[^<>'\"/;`%]*$";

答案 2 :(得分:3)

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

这将进行匹配,如果您只想允许将其包装在^ $或您认为合适的任何其他分隔符中,如果您这样做,则不需要特定的禁止逻辑。