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

Python:按指定模式分割字符串并提取目标内容

解决方案

从你的示例来看,需要提取的是日期前缀(YYYY_MM_DD_)和末尾固定标识(_Vendor/_market)之间的内容。下面提供两种可靠的实现方法:

实现代码

方法一:正则表达式精准提取

import re

def extract_target(file_name):
    # 匹配日期前缀后、末尾标识前的核心内容
    match_result = re.search(r'^\d{4}_\d{2}_\d{2}_(.*?)(?:_Vendor|_market)$', file_name)
    return match_result.group(1) if match_result else None

# 测试示例用例
test_files = [
    "2022_09_21_PTE_Vendor",
    "2022_09_21_SSS_01_Vendor",
    "2022_09_21_OOS_market"
]

for file in test_files:
    print(f"{file:<35} {extract_target(file)}")

方法二:字符串分割提取

如果不想用正则,也可以通过拆分字符串实现:

def extract_target_by_split(file_name):
    # 拆分字符串,跳过前3个日期相关的分段
    segments = file_name.split('_')[3:]
    # 移除末尾的Vendor/market标识,拼接剩余部分
    if segments[-1] in ['Vendor', 'market']:
        return '_'.join(segments[:-1])
    return None

# 测试示例用例
for file in test_files:
    print(f"{file:<35} {extract_target_by_split(file)}")

代码说明

  • 正则方法:^\d{4}_\d{2}_\d{2}_(.*?)(?:_Vendor|_market)$ 规则解析:
    • ^\d{4}_\d{2}_\d{2}_ 匹配开头的固定日期格式前缀
    • (.*?) 非贪婪匹配我们需要提取的核心内容
    • (?:_Vendor|_market)$ 匹配末尾的固定标识,?:表示非捕获组,不会额外提取这部分内容
  • 分割方法:先通过split('_')拆分字符串,跳过前3个日期相关分段,再移除最后一个末尾标识,拼接剩余分段得到目标内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:30:58