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

2022-09-01 21:59:30

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

允许的字符

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

不允许

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


答案 1

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

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

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

对于可以使用的无效字符

[<>'"/;`%]

以检查它们。

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

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

但是你需要一个允许提前查看的正则表达式引擎。


答案 2

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

假设所有字符,除了“特殊字符”是允许的,你可以写

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