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

Groovy:如何移除文件中前缀重复的后续行

解决思路与代码实现

要实现移除前缀重复行的需求,核心思路是跟踪已出现过的前缀,只保留每个前缀的第一行。以下是具体的实现步骤和代码示例:

步骤说明

  1. 拆分字符串为行:先把你得到的文件字符串拆分成单独的行(注意处理空行和多余的换行/<br>标签)。
  2. 提取前缀并去重:用一个集合来记录已经见过的前缀,遍历每一行时,提取该行的前缀(即第一个空格前的部分),如果前缀不在集合里,就保留这一行并将前缀加入集合。
  3. 拼接结果:最后把保留下来的行拼接成你需要的字符串格式。

代码示例(Python)

假设你已经把文件内容读取到了变量 input_str 中:

# 处理输入字符串,拆分并过滤空行
# 如果你的字符串是用换行符(\n)分隔的,把split('<br>')改成split('\n')即可
lines = [line.strip() for line in input_str.split('<br>') if line.strip()]

# 用于记录已出现的前缀
seen_prefixes = set()
# 存储最终保留的行
result_lines = []

for line in lines:
    # 提取前缀(以第一个空格为分隔符)
    prefix = line.split()[0]
    if prefix not in seen_prefixes:
        seen_prefixes.add(prefix)
        result_lines.append(line)

# 拼接成你需要的最终字符串
final_output = ' '.join(result_lines)

# 输出结果
print(final_output)

代码解释

  • 拆分与过滤:split('<br>') 把字符串按<br>拆分成行,strip() 去掉每行前后的空格,if line.strip() 过滤掉空行。
  • 集合去重:用集合seen_prefixes存储已出现的前缀,集合的查询操作是O(1)的,效率很高。
  • 拼接结果:' '.join(result_lines) 把保留的行用空格连接成一个字符串,和你期望的输出格式一致。

测试结果

用你给出的示例输入运行代码,会得到:

ABC-123 BLA bla ABC-234 AAA ABC-567 ddd

完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:18:15