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

如何从给定文本中提取目标内容?已尝试split相关代码实现

解决方案:提取目标文本片段

我来帮你搞定这个字符串提取的问题!看你的需求是从带格式标记的原始字符串里,过滤掉多余的类型前缀(比如n、v、a)和带%的方括号内容,只保留[xxx]及其对应的描述文本对吧?用正则表达式就能轻松实现,给你写个Python代码方案:

代码实现

import re

def extract_target_content(raw_string):
    # 正则匹配规则:精准定位并捕捉我们需要的核心片段
    match_pattern = r'\w+\s+\[\w+%.*?\]\s+(\[.*?\].*?)(?=\s+[\w]\s+\[|$)'
    # 找出所有符合规则的目标片段
    target_segments = re.findall(match_pattern, raw_string, re.DOTALL)
    # 拼接成最终结果,同时清理片段前后的冗余空格
    return ' '.join(seg.strip() for seg in target_segments)

# 测试你的输入内容
input_str = 'n [time%1:28:03::] [time] clock time n [year%1:28:01::] [year] twelvemonth, yr v [lily%1:20:00::] [lily] flower v [man%1:05:01::] [man] homo, human being, human a [government%1:14:00::] [government] authorities, regime'
output_result = extract_target_content(input_str)
print(output_result)

代码逻辑说明

  • 正则表达式r'\w+\s+\[\w+%.*?\]\s+(\[.*?\].*?)(?=\s+[\w]\s+\[|$)'拆解:
    • \w+\s+:匹配开头的类型标记(如n、v、a)和后续空格
    • \[\w+%.*?\]\s+:匹配带%的方括号冗余内容(如[time%1:28:03::])和后续空格
    • (\[.*?\].*?):核心捕捉组,提取从[xxx]开始到下一个条目开头/字符串结尾的所有内容
    • (?=\s+[\w]\s+\[|$):正向预查,确保捕捉范围不会越界到下一个条目
  • re.DOTALL参数让正则可以处理带换行的输入(如果你的原始字符串有换行也能兼容)
  • 最后通过strip()清理每个片段的前后空格,再拼接成你想要的结果

运行这段代码后,输出完全符合你的预期:

[time] clock time [year] twelvemonth, yr [lily] flower [man] homo, human being, human [government] authorities, regime

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:11:03