如何从字符串的每一行中删除指定范围的字符?
解决多行字符串逐行删除指定位置字符的问题
你的问题出在直接对整个字符串做替换操作——因为只有第一行的第6-11位字符是:100:,其他行的对应位置字符不同,所以replace只能替换掉第一行的目标内容。要实现逐行处理,需要把字符串拆分成单独的行,分别处理后再合并:
步骤1:拆分字符串为行列表
用splitlines(True)方法拆分,True参数会保留每行末尾的换行符,保证输出格式和原字符串一致。
步骤2:逐行处理
对每一行,保留前5个字符(第1-5位),再拼接从第12位开始的内容(跳过第6-11位)。注意Python字符串是0索引,所以第6到11位对应的索引是5:11,要删除这部分就取line[:5] + line[11:];如果行长度不足11位(比如空行),则直接保留原行。
完整代码示例
string = (''' 00:00:100:00:00 00:00.711,00:00 00:00,2()!00:00 ''') # 拆分每行并保留换行符 lines = string.splitlines(True) # 逐行处理 processed_lines = [line[:5] + line[11:] if len(line) >= 11 else line for line in lines] # 合并为最终字符串 result = ''.join(processed_lines) print(result)
输出结果
00:0000:00 00:0000:00 00:0000:00
内容的提问来源于stack exchange,提问作者William
相关产品推荐
相关产品推荐

