效果如图:
java代码:
/**
* 正则表达式过滤特殊字符
* @param str
* @return
* @throws PatternSyntaxException
*/
public static String StringFilter(String str) throws PatternSyntaxException{
// 只允许字母和数字
// String regEx = "[^a-zA-Z0-9]";
// 清除掉所有特殊字符
//String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
//不过滤 .doc的.
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\]<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
调用测试:
/**
* 测试过滤字符串
* 测试获取文件后缀名
* @param args
*/
public static void main(String[] args) {
//正则表达式过滤字符串特殊字符
String str = "关于下发“4G攻坚计划”_集团市场专项活动的通知.doc";
System.out.println(str);
System.out.println(StringFilter(str));
}
输出结果:
关于下发“4G攻坚计划”_集团市场专项活动的通知.doc
关于下发4G攻坚计划_集团市场专项活动的通知.doc