这是我的正则表达式,我用来从字符串中删除所有非键盘字符,即保留所有可以使用常规键盘输入的常规字符:
String test = "\u2665\n\t\r whatever";
String myregex = "[^\\p{L}\\p{Nd}\\,\\[\\]\\{\\}\\\\|\"\' `~!@#$%^&*()_+-=,./<>?\n\r\t]+";
System.out.println(test.replaceAll(myregex, ""));
有没有更好的方法呢?还有更紧凑的正则表达式,更高效的正则表达式吗?
我问,因为最初我没有这部分正则表达式\n\r\t
,然后意识到用户可能会点击Enter
,因此该部分缺少它。也许那里还有其他东西缺失?
基本上我要问的是:我们可以使用\\p{L}\\p{Nd}
而不是列出所有数字和字母。是否有!@#$% . .
等键盘字符的其他快捷方式?