有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正则表达式吃的东西太多了

所以我最近提出了一个问题,最后用正则表达式解决了这个问题。我使用的正则表达式基本上吃掉了我所有的非英语字符

让我再试一次:

我想吃掉字符串中可能存在的所有非键盘字符

我使用的正则表达式是:

[^\\p{L}\\p{N}]

然而这会让事情变得像

2012年10月10日上午10:51:25

进入

10102012105125AM

是否有某种方法可以轻松地使用replaceALL从字符串中排除所有alt代码字符,并保留键盘字符,如%/\:和其他字符不变

谢谢


共 (3) 个答案

  1. # 1 楼答案

    \p{Print}呢?它匹配所有可打印字符,这听起来正是你需要的

  2. # 2 楼答案

    要删除所有非ASCII字符,请执行以下操作:

    String mystring = <your_input_string>;
    mystring.replaceAll("[^ -~\\s]+", "");
    
  3. # 3 楼答案

    您可能只想保存ASCII字符。字符范围[ -~]将实现这一点。如果还需要空白字符,可以将它们添加到:[ -~\s]

    System.out.println(input.replaceAll("[^ -~\\s]+", ""));