Python中如何提取含退格特殊字符的字符串有效内容
提取带退格符字符串的有效内容
你遇到的字符串里的\x08是ASCII退格控制字符,终端打印时会执行「删除前一个字符」的操作,所以print(req_str)能显示出NAME;但直接过滤不可打印字符时,退格符被去掉了,原本要被它删除的字符却保留了下来,因此得到了NNAAMME。
要正确提取出NAME,需要模拟终端处理退格符的逻辑:遍历字符串时维护一个结果列表,遇到普通字符就加入列表,遇到退格符且列表不为空时,删除列表最后一个元素。
代码示例:
req_str = 'N\x08NA\x08AM\x08ME' result = [] for char in req_str: if char == '\x08': if result: result.pop() else: result.append(char) final_result = ''.join(result) print(final_result) # 输出: NAME
这个逻辑完全还原了终端处理退格的行为,最终就能得到和打印结果一致的有效字符串。
内容的提问来源于stack exchange,提问作者sayan dasgupta
相关产品推荐
相关产品推荐

