在python中解析字符串

Mat*_*ney 5 python string parsing

所以我的问题是这个,我有一个看起来像这样的文件:

[SHIFT]this isrd[BACKSPACE][BACKSPACE] an example file[SHIFT]1
Run Code Online (Sandbox Code Playgroud)

这当然会转化为

' This is an example file!'
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法将原始内容解析为最终内容,以便[BACKSPACE]删除最后一个字符(包含空格)和多个退格将删除多个字符.这[SHIFT]对我来说并不重要.感谢您的帮助!

Joe*_*ton 1

这是一种方法,但感觉很黑客。可能有更好的方法。

def process_backspaces(input, token='[BACKSPACE]'):
    """Delete character before an occurence of "token" in a string."""
    output = ''
    for item in (input+' ').split(token):
        output += item
        output = output[:-1]
    return output

def process_shifts(input, token='[SHIFT]'):
    """Replace characters after an occurence of "token" with their uppecase 
    equivalent. (Doesn't turn "1" into "!" or "2" into "@", however!)."""
    output = ''
    for item in (' '+input).split(token):
        output += item[0].upper() + item[1:]
    return output

test_string = '[SHIFT]this isrd[BACKSPACE][BACKSPACE] an example file[SHIFT]1'
print process_backspaces(process_shifts(test_string))
Run Code Online (Sandbox Code Playgroud)