用于检查字符串是否包含特定字符的模式

Dan*_*les 1 java regex string

老实说,我对模式知之甚少,但我需要一个让我知道这些中的一个是否存在并且仅这些字符存在于myString.

String myString = "thisMayContain/anything@";
String charactersIdontWant = "^àáâãäåçèéêëìíîïðòóôõöùúûüýÿ!&{}¿?.<>~\()";
Run Code Online (Sandbox Code Playgroud)

谢谢你。

pvg*_*ran 5

您可以使用 Apache 的 StringUtils 中的 containsAny():

boolean haveBadCharacters = StringUtils.containsAny(myString, charactersIdontWant);
Run Code Online (Sandbox Code Playgroud)

如果你坚持一个模式,你可以使用:

Pattern badCharactersPattern = Pattern.compile("[àáâãäåçèéêëìíîïðòóôõöùúûüýÿ!&{}¿?.<>~\()^]");
Run Code Online (Sandbox Code Playgroud)

(请注意,它^被移到了末尾,因此它不会被解释为组否定指示符。)