java代码实现过滤非中文,字母,下划线的方法
/**
* 过滤非法字符,只保留(中文,a-z,A-Z,0-9, _)
* @param str,原始文本(String)
* @return 返回新字符串
*/
public static String filterIllegalCharacters(String str) {
Pattern pattern = Pattern.compile("[^\\x{4e00}-\\x{9fa5}a-zA-Z0-9_]");
Matcher matcher = pattern.matcher(str);
StringBuffer buffer = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(buffer, " ");
}
// 合法部分添加到缓冲区
matcher.appendTail(buffer);
return buffer.toString();
}
}
参考网址:
中文,英文,数字,下划线不包含特殊字符的正则表达式:https://blog.csdn.net/qq_42176520/article/details/81328659
揭开正则表达式的神秘面纱:http://www.regexlab.com/zh/regref.htm