消除字符串中的Unicode字符和转义字符

时间:2013-12-19 09:53:17

标签: java unicode

我想删除所有Unicode字符和转义字符,例如(\n, \t)等。简而言之,我只想要字母数字字符串。

例如:

\u2029My Actual String\u2029 \nMy Actual String\n

我想只提取'My Actual String'。有没有办法这样做,通过使用内置的字符串方法或正则表达式?

2 个答案:

答案 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和转义字符之外的所有内容。正则表达式图示为:

enter image description here

输出

My Actual String My Actual String