gpt4 book ai didi

Java 正则表达式 - 删除字符后跟\b(退格键)

转载 作者:搜寻专家 更新时间:2023-10-30 21:26:38 24 4
gpt4 key购买 nike

我有一个由用户键盘类型构造的字符串,因此它可能包含 '\b' 个字符(退格键)。

我想清理字符串,使其不包含 '\b' 字符,以及它们要删除的字符。例如,字符串:

String str = "\bHellow\b world!!!\b\b\b.";

应打印为:

Hello world.

我已经用 replaceAll 尝试了一些东西,我现在拥有的是:

System.out.println(str.replaceAll("^\b+|.\b+", ""));

打印:

Hello world!!.

单个 '\b' 处理得很好,但它的倍数将被忽略。

那么,我可以用Java的正则表达式来解决吗?

编辑:

我看过this回答,不过好像申请不到java的replaceAll。
也许我在逐字字符串中遗漏了一些东西......

最佳答案

除非对连续退格的数量有实际限制(实际上没有),否则不能一次完成,并且可以保证(没有)没有“额外的” "没有要删除的前导字符的退格键。

这样就可以了(只有 2 条小线):

while (str.contains("\b"))
str = str.replaceAll("^\b+|[^\b]\b", "");

这处理输入的边缘情况,如 "x\b\by"它在开始时有一个额外的退格键,一旦第一个消耗了 x 就应该修剪它, 只留下 "y" .

关于Java 正则表达式 - 删除字符后跟\b(退格键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30173301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com