1、采用 Unicode 标点属性方式的正则表达式,可以去掉所有的标点符号,包括全角、半角、横排、竖排等的标点符号。public class Test {
public static void main(String... args) {
String str = "去符号标号!!当然。";
str = str.replaceAll("\\pP", "");
System.out.println(str);
}
}
注意:如果在 JDK 5 或以下的环境中,全角单引号对、双引号对无法替换掉,这是 JDK 5 及以下版本缺失的,在 JDK 6 中由于加入了Pi 和 Pf 两个 Unicode 子属性,因此就能替换掉。
在 JDK 6 以下的版本中可以这样:str = str.replaceAll("[\\pP‘’“”]", "");
2、说明:
\pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。
大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。
其他六个是 :
L:字母;
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符