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]对我来说并不重要.感谢您的帮助!
这是一种方法,但感觉很黑客。可能有更好的方法。
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)