Java regex - erase characters followed by \b (backspace) -


i have string constructed user keyboard types, might contain '\b' characters (backspaces).

i want clean string, not contain '\b' characters, characters meant erase. instance, string:

string str = "\bhellow\b world!!!\b\b\b."; 

should printed as:

hello world. 

i have tried few things replaceall, , have is:

system.out.println(str.replaceall("^\b+|.\b+", "")); 

which prints:

hello world!!.

single '\b' handled fine, multiples of ignored.

so, can solve java's regex?

edit:

i have seen this answer, seem not apply java's replaceall.
maybe i'm missing verbatim string...

it can't done in 1 pass unless there practical limit on number of consecutive backspaces (which there isn't), , there guarantee (which there isn't) there no "extra" backspaces there no preceding character delete.

this job (it's 2 small lines):

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

this handles edge case of input "x\b\by" has backspace @ start, should trimmed once first 1 consumes x, leaving "y".


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -