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

如何提取指定字符串后的可变长度值?附Python代码片段

解决方案

要实现从包含batch的文本行中提取Pulp: type后的纸浆类型(长度3-25字符),并将相关内容存入output[f]列表,你可以用正则表达式精准匹配目标内容,同时优化文件操作的安全性。这里是完善后的代码:

import re

# 假设你的file_list已经提前定义好
output = {}
# 定义正则模式:匹配'Pulp: type '后3-25个字符(支持字母、数字、空格,可根据实际字符调整)
pulp_regex = re.compile(r'Pulp: type ([\w\s]{3,25})')

for f in file_list:
    output[f] = []
    # 使用with语句自动管理文件,避免资源泄漏
    with open(f, 'r') as txtfile:
        for line in txtfile:
            cleaned_line = line.strip()
            # 只处理包含'batch'的行
            if 'batch' in cleaned_line:
                # 在当前行中搜索纸浆类型
                match_result = pulp_regex.search(cleaned_line)
                if match_result:
                    extracted_pulp_type = match_result.group(1)
                    # 两种可选的添加方式,根据你的需求二选一:
                    # 1. 将整行内容加入列表
                    output[f].append(cleaned_line)
                    # 2. 只加入'Pulp: type'和对应的纸浆类型文本
                    # output[f].append(f'Pulp: type {extracted_pulp_type}')

关键细节说明

  • 正则表达式调整:如果你的纸浆类型包含除字母、数字、空格外的特殊字符(比如连字符-),可以把正则里的[\w\s]改成[\w\s-]这类符合实际场景的字符集。
  • 文件操作优化:用with open(...)替代直接open(),能确保文件在操作完成后自动关闭,避免出现文件句柄泄漏问题。
  • 匹配逻辑:先筛选出包含batch的行,再在这些行里精准定位Pulp: type后的内容,避免处理无关行提升效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:21:58