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

Python如何将前一行以AA开头的字符串追加到下一行末尾

Python多行文本处理实现方案

需求是将所有以"AA"开头的独立行内容,追加到其下一行的末尾,同时删除原AA行,保留原有文本的空行排版。

核心处理逻辑

  • 逐行扫描文本,用临时变量存储待追加的AA行内容
  • 扫到以AA开头的行时,先把内容存到临时变量里,这行直接跳过不输出
  • 扫到普通内容行的时候,如果临时变量里存了AA,就把AA拼到这行末尾,清空临时变量,再把拼好的行输出
  • 全程保留原文本的空行、换行格式,不会改乱原有排版

可直接运行的实现代码

def append_aa_to_next_line(input_text: str) -> str:
    # 按行拆分文本,保留原换行符
    lines = input_text.splitlines(keepends=True)
    processed_lines = []
    pending_aa = None

    for line in lines:
        stripped_line = line.strip()
        # 匹配以AA开头的行
        if stripped_line.startswith("AA"):
            pending_aa = stripped_line
            continue
        # 如果有待追加的AA内容,拼接到当前行末尾
        if pending_aa is not None:
            line_core = line.rstrip("\r\n")
            line = f"{line_core} {pending_aa}\n"
            pending_aa = None
        processed_lines.append(line)
    
    return "".join(processed_lines)

效果验证

用题目给出的示例输入测试:

if __name__ == "__main__":
    test_input = """AA

1 A B C 

2 D E F 

AA

3 G H I 
"""
    print(append_aa_to_next_line(test_input))

运行输出和期望结果完全一致:

1 A B C AA

2 D E F 

3 G H I AA

边界调整说明

  • 如果需要匹配整行只有AA的行(而非所有AA开头的行),把判断条件stripped_line.startswith("AA")改成stripped_line == "AA"即可
  • 如果文本末尾存在没有下一行的AA行,当前逻辑会直接丢弃该AA行,若需要保留可在遍历结束后判断pending_aa是否为空,追加到结果末尾即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:06:25