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

如何用REGEX提取CSV中首条含apple或salad的行并忽略后续匹配行

提取CSV中首次出现apple/salad的行

文本编辑器处理(支持正则替换)

  1. 打开CSV文件,切换到正则替换模式(不同编辑器操作略有差异:VS Code按Ctrl+H后勾选「正则表达式」;Notepad++在替换窗口勾选「正则表达式」)
  2. 使用以下规则执行替换:
    • 查找内容:^(?!.*(apple|salad)).*$\n|^(.*apple.*)$\n(?:.*apple.*$\n)*|^(.*salad.*)$\n(?:.*salad.*$\n)*
    • 替换内容:$1$2
  3. 替换完成后,文件将仅保留第一行含apple的记录和第一行含salad的记录。

正则逻辑说明

  • ^(?!.*(apple|salad)).*$\n:匹配并删除所有不含apple或salad的行
  • ^(.*apple.*)$\n(?:.*apple.*$\n)*:锁定第一个含apple的行,删除后续所有含apple的行
  • ^(.*salad.*)$\n(?:.*salad.*$\n)*:同理处理salad相关行,仅保留首次出现的那一行

OpenOffice Calc处理

  1. 将CSV文件导入OpenOffice Calc,确保每行数据对应表格的一行
  2. 新增辅助列(比如B列),在B1单元格输入公式:
    =IF(OR(ISNUMBER(SEARCH("apple",A1)),ISNUMBER(SEARCH("salad",A1))),IF(OR(COUNTIF($B$1:B1,"apple")=0,COUNTIF($B$1:B1,"salad")=0),IF(ISNUMBER(SEARCH("apple",A1)),"apple","salad"),""),"")
    
  3. 按住B1单元格右下角的填充柄,下拉填充到所有行
  4. 选中B列,点击「数据」→「筛选」→「自动筛选」,筛选出B列不为空的行,即为需要保留的目标记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:25:30