所以我最近打开了一个问题并最终使用正则表达式来解决它。我使用的正则表达式基本上吃了我所有的非英文字符。
让我重试一遍:
我想吃掉字符串中可能存在的所有非键盘字符
我正在使用的正则表达式是:
[^\\p{L}\\p{N}]
然而,这会变成像
这样的东西10/10/2012 10:51:25 AM
到
10102012105125AM
是否有某种方法可以轻松地从带有replaceALL的字符串中排除所有alt-code字符并保留键盘字符,如%/ \:和其他字符串完好无损?
谢谢!
答案 0 :(得分:2)
您可能只想保存ASCII字符。角色范围[ -~]
将实现这一目标。如果您还想要空白字符,可以将它们添加到:[ -~\s]
。
System.out.println(input.replaceAll("[^ -~\\s]+", ""));
答案 1 :(得分:1)
删除所有非ASCII字符:
String mystring = <your_input_string>;
mystring.replaceAll("[^ -~\\s]+", "");
答案 2 :(得分:0)
\p{Print}
怎么样?它匹配所有可打印的字符,听起来就像你需要的那样。