You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用正则表达式提取文本文件中以单个-或+开头的行

高效提取diff中变更行的正则方案

正则表达式

使用以下正则表达式可精准匹配目标行(排除diff文件头的---/+++行,仅提取单个-/+开头的变更行):

^[-+](?![-+]).*$
  • ^:匹配行首位置
  • [-+]:匹配单个-或+符号
  • (?![-+]):负向预查,确保符号后不是同类型符号(避免误匹配---/+++开头的文件头行)
  • .*$:匹配该行剩余全部内容

不同场景的实现示例

1. Unix/Linux 环境用 grep 直接提取

使用支持Perl正则的grep命令,一次性提取所有目标行:

grep -P '^[-+](?![-+])' your_diff_file.txt

2. Python 批量处理

一次性读取文件内容后用正则批量匹配,避免逐行遍历的重复开销:

import re

with open("your_diff_file.txt", "r") as file:
    full_content = file.read()

# 启用多行模式,匹配所有符合条件的行
target_lines = re.findall(r'^[-+](?![-+]).*$', full_content, re.MULTILINE)

# 输出结果
for line in target_lines:
    print(line)

效率优势

相比逐行遍历匹配,一次性读取文件+正则批量匹配的方式减少了IO操作次数和重复匹配的开销,尤其处理大文件时,正则引擎的批量处理能力能显著提升效率。

内容的提问来源于stack exchange,提问作者Super MaxLv4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 21:45:39