Notepad++如何用正则匹配整行 删除Start time/End time开头的冗余行
文本行过滤的实现方案
所有方案的核心逻辑都是匹配行首文本,直接剔除所有以Start time、End time开头的行,按需清理多余空行,最终只保留Name开头的内容。
方案1:带正则能力的文本编辑器(零代码,单文件最快)
用Notepad++、VS Code这类常用编辑器就能完成操作,不需要写代码:
- 打开目标TXT文件,调出「查找替换」面板
- 勾选面板中的「正则表达式」匹配模式
- 查找输入框填入规则:
^(Start time|End time|$).*\n? - 替换输入框留空,点击「全部替换」即可
这个规则会同时匹配时间开头的行、所有空白行,一步就能得到仅保留Name行的结果。
方案2:系统自带命令行(无需安装额外软件)
适合习惯用终端操作的用户,直接调用系统自带工具即可完成:
- macOS / Linux 终端执行命令:
grep -vE "^(Start time|End time|$)" 原文件.txt > 处理后文件.txt
其中grep -v是反向筛选参数,会把所有匹配规则的行排除,结果输出到新文件,不会修改原文件内容。 - Windows PowerShell 执行命令:
Get-Content 原文件.txt | Where-Object {$_.Trim() -ne "" -and $_.Trim() -notmatch "^(Start time|End time)"} | Set-Content 处理后文件.txt
方案3:Python脚本(适合批量处理、可灵活扩展规则)
如果需要批量处理同格式的多个TXT文件,或者后续要新增更多过滤规则,直接运行以下简短脚本即可:
# 替换为你自己的文件路径 input_file = "待处理文件.txt" output_file = "处理后结果.txt" # 逐行读取文件内容 with open(input_file, "r", encoding="utf-8") as f: all_lines = f.readlines() # 过滤规则:剔除空行、以及行首为Start time、End time的行 keep_content = [ line for line in all_lines if line.strip() != "" and not line.strip().startswith(("Start time", "End time")) ] # 将保留的内容写入新文件 with open(output_file, "w", encoding="utf-8") as f: f.writelines(keep_content)
脚本运行后生成的新文件,会和你预期的输出效果完全一致。
注意:匹配规则只识别行首文本,原文件里End time行尾附带的
#"这类杂字符不会影响过滤结果,无需额外处理。
内容的提问来源于stack exchange,提问作者zimskiz
相关产品推荐
相关产品推荐

