サンプルコード(実行可能)
String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
public static void main(String[] args) {
System.out.println(hasSpecialChar("", regEx));
System.out.println(hasSpecialChar(" ", regEx));
System.out.println(hasSpecialChar("faf", regEx));
System.out.println(hasSpecialChar("fa fa", regEx));
System.out.println(hasSpecialChar("fa(", regEx));
}
public static boolean hasSpecialChar(String str, String regEx) {
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.find();
}
上記のコードは実行できますが、特殊文字にはマイナス記号( "-")が含まれていません。マイナス記号をフィルタリングする場合は、特別な処理( "\\-")を実行する必要があります。
String regEx1 = "[_`~!@#$%^&*()\\-+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t";
マイナス記号は、記号として特別で特別です。