以下内容将替换ASCII控制字符(的缩写[\x00-\x1F\x7F]):
[\x00-\x1F\x7F]
my_string.replaceAll("\\p{Cntrl}", "?");
以下内容将替换所有ASCII不可打印字符(的缩写[\p{Graph}\x20]),包括带重音符号的字符:
[\p{Graph}\x20]
my_string.replaceAll("[^\\p{Print}]", "?");
但是,两者均不适用于Unicode字符串。有谁能从Unicode字符串中删除不可打印字符的好方法?
my_string.replaceAll("\\p{C}", "?");
详细了解Unicode正则表达式。java.util.regexPattern/ String.replaceAll支持他们。
java.util.regexPattern/ String.replaceAll