【发布时间】:2015-09-22 05:57:59
【问题描述】:
我有一个由用户键盘类型构成的字符串,因此它可能包含'\b' 字符(退格)。
我想清理字符串,使其不包含'\b' 字符以及它们要删除的字符。例如,字符串:
String str = "\bHellow\b world!!!\b\b\b.";
应该打印为:
Hello world.
我已经用replaceAll尝试了一些东西,我现在拥有的是:
System.out.println(str.replaceAll("^\b+|.\b+", ""));
哪些打印:
世界你好!!。
单个'\b' 处理得很好,但它的倍数被忽略。
那么,我可以用 Java 的正则表达式解决它吗?
编辑:
看过this的回答,但是好像不适用于java的replaceAll。
也许我在逐字字符串中遗漏了一些东西......
【问题讨论】:
-
您如何打印此字符串以在输出中获得
\b? -
Eclipse 的控制台......但我也在 XML-RPC 中传递它,但它失败了,因为它是一个无效的 XML 字符......
-
我只是在我的 Eclipse 控制台上看到
Hellow world!!!.,而没有显示\b -
可能需要将控制台编码设置为UTF8。无论如何,您可以调试和检查字符串。
-
看起来您正在匹配
A(n)B(n)字符串,所以here 是一个相关问题,其中有一个很长的答案来解释要做什么。