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

如何使用正则表达式基于‘Script or expected file(s)’列删除符合条件的行?

嘿,我来帮你搞定这个行删除的需求!我们可以结合正则表达式和常用的表格处理工具,精准筛选出需要删除的行并完成操作。下面是具体的实现方案:

解决方案:基于正则筛选并删除指定行

第一步:明确删除规则与对应的正则表达式

你的需求是删除满足以下任一条件的行:

  • 「Script or expected file(s)」列的值为空(包括NaN、空字符串)
  • 列值包含指定扩展名:.txt_go、.zip、.prd、.xml、.go、.csv、.txt、.xlsx
  • 列值包含以_00开头的子串(比如file_001.txt、_00test这类)

针对后两个条件,我们可以写出这样的正则表达式:

(?:\.txt_go|\.zip|\.prd|\.xml|\.go|\.csv|\.txt|\.xlsx)|_00.*
  • (?:...) 是非捕获组,把所有扩展名放在一起做“或”判断
  • | 表示“或者”,分隔扩展名匹配规则和_00.*规则
  • _00.* 会匹配任何包含_00且后面跟任意内容的字符串

如果你希望扩展名是作为文件名后缀(即字符串以这些扩展名结尾),可以给正则加上$(表示字符串结尾),避免误匹配到包含这些子串但不是扩展名的内容:

(?:\.txt_go|\.zip|\.prd|\.xml|\.go|\.csv|\.txt|\.xlsx)$|_00.*

第二步:用Python Pandas实现具体操作

Pandas是处理表格数据的常用工具,我们可以用它来快速完成筛选和删除:

import pandas as pd

# 读取你的数据(这里假设是CSV文件,也可以是Excel等其他格式)
df = pd.read_csv("your_input_file.csv")

# 定义删除条件:空值 或者 匹配正则
delete_mask = (
    df["Script or expected file(s)"].isna()  # 匹配NaN
    | df["Script or expected file(s)"].str.strip().eq("")  # 匹配空字符串(去除前后空格后)
    | df["Script or expected file(s)"].str.contains(
        r'(?:\.txt_go|\.zip|\.prd|\.xml|\.go|\.csv|\.txt|\.xlsx)|_00.*',
        na=False  # NaN值不参与正则匹配,返回False
    )
)

# 保留不符合删除条件的行
filtered_df = df[~delete_mask]

# 保存处理后的结果(可选)
filtered_df.to_csv("your_output_file.csv", index=False)

其他工具的适配方案

如果你用的是SQL、Excel VBA这类工具,核心逻辑是一样的:

  • 先判断空值
  • 再用正则匹配符合条件的字符串
  • 删除匹配到的行

比如MySQL中的SQL语句示例:

DELETE FROM your_table
WHERE 
    `Script or expected file(s)` IS NULL
    OR `Script or expected file(s)` = ''
    OR `Script or expected file(s)` REGEXP '(\\.txt_go|\\.zip|\\.prd|\\.xml|\\.go|\\.csv|\\.txt|\\.xlsx)|_00.*';

注意:SQL中需要把.转义为\\.,不同数据库的正则语法可能有细微差别,需要根据实际情况调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:37:40