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

正则搜索无法提取配置文本中TRANSITION、DESTINATION参数值的优化咨询

原代码存在的问题
  • 文件读取逻辑错误:代码里写的line=f.readlines 是直接引用文件对象的readlines方法,并没有实际调用方法读取内容,后续把这个方法对象转成字符串后,完全不包含test.txt里的实际文本,自然搜不到目标字段。
  • 正则匹配范围错误:初始正则仅匹配了TRANSITION/DESTINATION这两个字段名本身,没有覆盖字段后面的参数值部分,就算匹配成功也只能拿到字段名,拿不到需要的数值。
  • 变量引用错误:判断分支中使用了未定义的searchObj.group(),正常运行会直接触发变量不存在的报错。
可直接运行的优化代码

匹配规则会自动识别字段名和后面紧跟的逗号分隔数值,不需要手动处理空格拆分:

import re

# 完整读取文件所有文本内容
with open('test.txt', 'r', encoding='utf-8') as f:
    full_text = f.read()

# 匹配规则:分别抓TRANSITION、DESTINATION后面的两组数字
trans_re = r'TRANSITION=(\d+),(\d+)'
dest_re = r'DESTINATION=(\d+),(\d+)'

trans_match = re.search(trans_re, full_text)
dest_match = re.search(dest_re, full_text)

# 初始化存储变量
transition = []
destination = []

if trans_match:
    # 把匹配到的两个数字转成整数存入列表
    transition = [int(trans_match.group(1)), int(trans_match.group(2))]
    print("Transition 参数:", transition)
else:
    print("Transition 参数缺失!")

if dest_match:
    destination = [int(dest_match.group(1)), int(dest_match.group(2))]
    print("Destination 参数:", destination)
else:
    print("Destination 参数缺失!")

# 如果需要拆成4个独立变量,直接解包列表即可
trans_left, trans_right = transition
dest_left, dest_right = destination

规则里的括号是正则捕获组,会自动提取等号前后的数值,不管字段前后有多少空格分隔都能正常识别,就算两个字段不在同一行也能稳定匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 02:15:04