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

Jan*_*ith 17 java regex

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

允许的角色

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

不允许

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

Joe*_*oey 35

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

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

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

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

[<>'"/;`%]
Run Code Online (Sandbox Code Playgroud)

检查他们.

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

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

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


Pet*_*rey 8

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

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

String regex = "^[^<>'\"/;`%]*$";
Run Code Online (Sandbox Code Playgroud)

  • @ user01`text = text.replaceAll("[<>'\"/;%]","");`或者如果你想组合多个特殊字符和空格`text = text.replaceAll("[<>' \"/;%] +","");` (2认同)