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

如何用更Pythonic的方法从MODBUS变量名字符串中提取指定数字?

优化后的Pythonic实现

直接用单条正则捕获目标数字,省略多次字符串分割的冗余逻辑,代码如下:

import re

# 嵌套在CSV遍历循环中的代码
match_obj = re.search(r"_ST(\d+)\.WORD_type", variable)
if match_obj:
    var_type = "string"
    var_length = int(match_obj.group(1)) / 2

优化点说明

  • 仅做一次正则匹配即可完成判断+数值提取,不需要多次split生成多余临时变量,逻辑更清晰
  • 正则中的(\d+)会自动捕获任意位数的数字,不受原有1-2位长度限制,兼容性更强
  • 直接用匹配对象的布尔值做判断,符合Python的真值判断习惯

如果你的场景中需要严格限制数字位数,可以把正则中的\d+替换为\d{1,2}即可,功能和原有实现完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:45:02