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

如何用正则表达式移除文本中首次出现后的重复指定内容?

移除文本行中首次出现后的重复内容(非紧邻)

以下是几种实用的实现方式,核心逻辑都是保留每个元素的首次出现,过滤后续所有重复项:

方法一:Python 脚本(通用场景)

适合需要集成到代码里,或者处理复杂文本的场景:

# 处理单行示例
input_line = "First  Second  Third  First  Fourth  First  Fifth"
# 分割元素,自动处理多个空格的情况,同时过滤空字符串
elements = [item for item in input_line.split() if item]

seen = set()
unique_elements = []
for item in elements:
    if item not in seen:
        seen.add(item)
        unique_elements.append(item)

# 用单个空格拼接结果,也可根据需求调整分隔符
result = ' '.join(unique_elements)
print(result)

运行后输出:First Second Third Fourth Fifth

如果要批量处理文件中的每一行,只需把上述逻辑套入文件读取循环即可。

方法二:Awk 命令(Shell 环境)

适合在终端快速处理文本文件或单行输入:

处理单行文本

echo "First  Second  Third  First  First  Fourth  Fifth" | awk '{
    delete seen; 
    res = "";
    for (i=1; i<=NF; i++) {
        if (!seen[$i]) {
            seen[$i] = 1;
            res = res (res == "" ? "" : " ") $i;
        }
    }
    print res
}'

批量处理文件

假设待处理文件为 input.txt,执行以下命令:

awk '{
    delete seen; 
    res = "";
    for (i=1; i<=NF; i++) {
        if (!seen[$i]) {
            seen[$i] = 1;
            res = res (res == "" ? "" : " ") $i;
        }
    }
    print res
}' input.txt > output.txt

处理后的结果会保存到 output.txt 中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:26:07