我想删除所有Unicode字符和转义字符,例如(\n, \t)
等。简而言之,我只想要字母数字字符串。
例如:
\u2029My Actual String\u2029
\nMy Actual String\n
我想只提取'My Actual String'
。有没有办法这样做,通过使用内置的字符串方法或正则表达式?
答案 0 :(得分:0)
试试这个:
anyString = anyString.replaceAll("\\\\u\\d{4}|\\\\.", "");
删除转义字符。如果您还想删除所有其他特殊字符,请使用以下字符:
anyString = anyString.replaceAll("\\\\u\\d{4}|\\\\.|[^a-zA-Z0-9\\s]", "");
(我想你要保留空格,如果没有从上面的那个中移除\\s
)
答案 1 :(得分:0)
尝试
String stg = "\u2029My Actual String\u2029 \nMy Actual String";
Pattern pat = Pattern.compile("(?!(\\\\(u|U)\\w{4}|\\s))(\\w)+");
Matcher mat = pat.matcher(stg);
String out = "";
while(mat.find()){
out+=mat.group()+" ";
}
System.out.println(out);
正则表达式匹配除unicode和转义字符之外的所有内容。正则表达式图示为:
输出:
My Actual String My Actual String