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

如何用Python find方法提取lea=后至空格前的可变长度值

Python 2.7.5 提取"lea="后到首个空格前的可变长度值

问题背景

原代码通过固定切片[r+4:r+12]提取值,仅在目标长度固定时有效,无法适配可变长度的场景,需要修改逻辑来准确定位取值范围。


解决方案

方法1:两次find精准定位

找到lea=的起始位置后,从该位置向后查找第一个空格的位置,以此确定取值的结束边界,兼容lea=为行尾字段的情况:

def getLea(icd):
    with open("icds.txt") as f:
        for line in f:
            lea_start = line.find("lea=")
            if lea_start != -1:
                value_start = lea_start + 4
                # 从value_start位置开始找第一个空格
                value_end = line.find(" ", value_start)
                if value_end != -1:
                    res = line[value_start:value_end].strip()
                else:
                    # 处理lea是最后一个字段的情况
                    res = line[value_start:].strip()
                return res
    return None

方法2:分割行后匹配键值对

将行按空格分割为多个字段,遍历字段找到以lea=开头的项,直接截取后续内容:

def getLea(icd):
    with open("icds.txt") as f:
        for line in f:
            for part in line.strip().split():
                if part.startswith("lea="):
                    res = part[4:]
                    return res
    return None

方法3:正则表达式匹配

利用正则表达式直接匹配lea=后的非空白字符序列,灵活适配各种格式:

import re

def getLea(icd):
    lea_pattern = re.compile(r'lea=(\S+)')
    with open("icds.txt") as f:
        for line in f:
            match_result = lea_pattern.search(line)
            if match_result:
                res = match_result.group(1)
                return res
    return None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:52:19