我有一个来自UI的字符串,其中包含控制字符,例如换行符和回车符.
我想做这样的事情:
String input = uiString.replaceAll(<regex for all control characters> , "")
Run Code Online (Sandbox Code Playgroud)
当然这已经做过了!?
Lou*_*man 25
使用Guava,可能比使用完整的正则表达式引擎更有效,当然更具可读性......
return CharMatcher.JAVA_ISO_CONTROL.removeFrom(string);
Run Code Online (Sandbox Code Playgroud)
或者,只使用正则表达式,尽管不是那么可读或有效......
return string.replaceAll("\\p{Cntrl}", "");
Run Code Online (Sandbox Code Playgroud)
Mic*_*l W 15
像这样的东西应该做的伎俩:
String newString = oldString.replaceAll("[\u0000-\u001f]", "");
Run Code Online (Sandbox Code Playgroud)
要仅删除 ASCII 控制字符,请使用Cntrl字符类
String newString = string.replaceAll("\\p{Cntrl}", "");
Run Code Online (Sandbox Code Playgroud)
要删除 Unicode 称为“控制字符”的所有 65 个字符,请Cntrl在UNICODE_CHARACTER_CLASSmode 中使用字符类,并带有(?U)标志:
String newString = string.replaceAll("(?U)\\p{Cntrl}", "");
Run Code Online (Sandbox Code Playgroud)
要另外删除 unicode“格式”字符——比如用于使文本从右到左的控制字符,或软连字符——也可以取消Cf字符类:
String newString = string.replaceAll("(?U)\\p{Cntrl}|\\p{Gc=Cf}", "");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26035 次 |
| 最近记录: |