Python移除不区分大小写的指定行字符串问题求助
解决方法
确实需要逐行处理,毕竟目标文本存在各种大小写、空格错误,精确替换根本搞不定。下面给你两种简单的实现方式:
方式一:列表推导式(简洁写法)
original_str = """test1 test2 OTherTEXT test3 test4""" target = "othertext" # 先把目标文本处理成无空格、全小写的基准 target_clean = target.replace(" ", "").lower() # 分割成每行,过滤掉符合条件的行后重新拼接 result_str = "\n".join([ line for line in original_str.split("\n") if line.replace(" ", "").lower() != target_clean ]) print(result_str)
方式二:基础循环写法(更直观,适合新手理解)
original_str = """test1 test2 other text test3 test4""" target = "othertext" target_clean = target.replace(" ", "").lower() lines = original_str.split("\n") result_lines = [] for line in lines: # 把当前行也处理成无空格、全小写的形式,和基准对比 line_clean = line.replace(" ", "").lower() if line_clean != target_clean: result_lines.append(line) result_str = "\n".join(result_lines) print(result_str)
原理说明
- 先把目标文本
othertext处理成无空格、全小写的基准字符串,这样不管输入的是OTherTEXT还是other text,处理后都会统一成othertext; - 把原始字符串按换行符
\n分割成每行的列表,逐行处理:同样将当前行去空格、转小写,和基准字符串对比,不一样就保留; - 最后把保留的行用换行符拼接成新字符串,就是你要的结果。
这种方法不管目标行有多少空格、大小写怎么混乱,都能精准识别并移除,还不会留下空行。
内容的提问来源于stack exchange,提问作者Ghisy
相关产品推荐
相关产品推荐

