如何用正则表达式移除文本中首次出现后的重复指定内容?
移除文本行中首次出现后的重复内容(非紧邻)
以下是几种实用的实现方式,核心逻辑都是保留每个元素的首次出现,过滤后续所有重复项:
方法一: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
相关产品推荐
相关产品推荐

