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

如何从指定列表字符串中提取Gnd和Stem对应的2.35、4.55数值

嘿,我来帮你搞定这个数值提取的需求!针对你给出的字符串,用正则表达式来精准匹配是最直接高效的方式,下面是具体的解决方案:

提取指定关键词对应数值的实现方案

首先,你的原始数据是这样的:

myData = ["GndWork0920932jdjs-----#2.35 InherenowanotheeStemWork83kkjkfjks-----#4.55"]

我们可以借助Python的re模块,通过正则表达式匹配**关键词(Gnd/Stem)**后跟随的内容,精准捕获-----#后面的数值部分。

具体代码实现

import re

# 取出列表中的目标字符串
target_str = myData[0]

# 定义通用提取函数,根据关键词获取对应数值
def extract_target_value(keyword, text):
    # 正则规则:匹配关键词后任意字符,直到-----#,然后捕获小数数值
    pattern = rf"{keyword}.*?-----#(\d+\.\d+)"
    match_result = re.search(pattern, text)
    # 如果匹配到结果就返回数值,否则返回None
    return match_result.group(1) if match_result else None

# 提取Gnd对应的数值
gnd_num = extract_target_value("Gnd", target_str)
# 提取Stem对应的数值
stem_num = extract_target_value("Stem", target_str)

print(f"Gnd对应的数值:{gnd_num}")  # 输出:2.35
print(f"Stem对应的数值:{stem_num}")  # 输出:4.55

代码逻辑说明

  • 正则表达式rf"{keyword}.*?-----#(\d+\.\d+)"的作用:
    • {keyword}:精准匹配你指定的关键词(Gnd或Stem)
    • .*?:非贪婪模式匹配任意字符,避免过度匹配到其他关键词的内容
    • (\d+\.\d+):捕获小数格式的数值,\d+匹配数字,\.匹配小数点
  • re.search()会在字符串中找到第一个符合规则的匹配结果,正好对应你需要的单个数值

如果后续你的字符串中出现多个相同关键词的情况,只需要把re.search()换成re.findall(),就能获取所有匹配的数值列表啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:36:51