参考
http://www.runoob.com/java/java-regular-expressions.html
String str = ",.!,,D_NAME。!;‘’”“**dfs #$%^&()-+1431221\"\"中 国123漢字かどうかのjavaを決定";str = str.replaceAll("[\\pP\\pS\\pZ]", "");System.out.println(str);
DNAMEdfs1431221中国123漢字かどうかのjavaを
Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。
/pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。P:标点字符
L:字母; M:标记符号(一般不会单独出现); Z:分隔符(比如空格、换行等); S:符号(比如数学符号、货币符号等); N:数字(比如阿拉伯数字、罗马数字等); C:其他字符
- /**清除数字和空格*/
- public static String cleanBlankOrDigit(String str){
- if(isBlankOrNull(str))return "null";
- return Pattern.compile("\\d|\\s").matcher(str).replaceAll("");
- }
public static final String REG_SPACE_PUNCTUATION = "(\\s)|(\\pP)";
List<News> news = newsDao.findNewsByComsOrInds(query);// 所有的标点符号空格用空字符串替换后 再进行去重TreeSet<News> newSet = new TreeSet<>((o1, o2) -> o1.getTitle().replaceAll(REG_SPACE_PUNCTUATION, "").compareTo(o2.getTitle().replaceAll(REG_SPACE_PUNCTUATION, "")));newSet.addAll(news);news = new ArrayList<>(newSet);java里面\\s就是空格, \\pP代表标点符号。 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
/pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。第一个 \ 是转义字符用在上面的replaceAll 方法中 写第一个\ 就代表匹配正则表达式了