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

如何提取多行列表中Animal行后的完整内容?

提取类列表文本中的动物名称

需求说明

需要从类列表结构的文本中,提取Animal:行后的完整动物名称,支持多单词名称,同时在多行文本中仅提取目标行内容:

  • 输入单一行:Animal: Dog → 输出Dog
  • 输入单一行:Animal: Big Blue Dog → 输出Big Blue Dog
  • 输入多行文本:
Color: Red
Animal: Big bird
Ocean: Blue And Dark

→ 输出Big bird

原代码问题分析

你编写的代码中,splitAnimalString()[0](推测为笔误,实际应为按空格拆分后取单个单词)的逻辑存在问题——按空格拆分名称会把多单词名称拆成片段,导致只能拿到其中一个单词,无法完整提取名称。同时该逻辑未考虑多行文本的情况,可能会包含其他行的内容。

原代码:

text_str = myList

animal_text_split = "Animal:"

resAnimal = text_str.split(animal_text_split, 1)
splitAnimalString = resAnimal[1]

animalName = splitAnimalString()[0]
print(animalName)

解决方案

方法1:按行遍历匹配(直观易读)

将文本按换行分割为单行,遍历找到以Animal:开头的行,截取冒号后的内容并去除首尾空白:

text_str = """Color: Red
Animal: Big bird
Ocean: Blue And Dark"""

lines = text_str.splitlines()
animal_name = ""
for line in lines:
    stripped_line = line.strip()
    if stripped_line.startswith("Animal:"):
        # 分割一次,避免名称中包含冒号的极端情况
        animal_name = stripped_line.split("Animal:", 1)[1].strip()
        break

print(animal_name)  # 输出 Big bird

方法2:基于字符串索引定位(高效)

直接定位Animal:的位置,再找到后续的第一个换行符,截取中间内容:

text_str = """Color: Red
Animal: Big Blue Dog
Ocean: Blue And Dark"""

marker = "Animal:"
start_pos = text_str.find(marker) + len(marker)
# 从起始位置开始找第一个换行符
end_pos = text_str.find("\n", start_pos)

# 处理无换行符的情况(目标行是最后一行)
if end_pos == -1:
    animal_name = text_str[start_pos:].strip()
else:
    animal_name = text_str[start_pos:end_pos].strip()

print(animal_name)  # 输出 Big Blue Dog

方法3:正则表达式(灵活通用)

用正则匹配Animal:后到换行或文本结尾的所有内容,自动忽略首尾空白:

import re

text_str = """Color: Red
Animal: Small Dog
Ocean: Blue And Dark"""

# 正则匹配:Animal: 后接任意空白,然后匹配到换行或结尾的内容
match_result = re.search(r"Animal:\s*(.*?)\s*(?:\n|$)", text_str)
if match_result:
    animal_name = match_result.group(1)
    print(animal_name)  # 输出 Small Dog

以上三种方法都能完整提取任意长度的动物名称,同时适配多行文本场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:15:18