【发布时间】:2023-04-04 19:11:01
【问题描述】:
我有以下字符串:
ip = 'MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 1), MDSYS.SDO_ORDINATE_ARRAY(22027, 22943, 22026, 22939, 22025, 22936, 22025, 22932, 22027, 22929, 22030, 22926)'
我想提取 MDSYS.SDO_ORDINATE_ARRAY 之后的值并将它们配对并存储为列表。到目前为止我尝试了什么?
op=[]
ip = 'MDSYS.SDO_GEOMETRY(2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 1), MDSYS.SDO_ORDINATE_ARRAY(22027, 22943, 22026, 22939, 22025, 22936, 22025, 22932, 22027, 22929, 22030, 22926)'
m=re.search(r"\bMDSYS\.SDO_ORDINATE_ARRAY\(([^()]+)\)", ip)
if m:
op.append("({})".format(", ".join(re.findall(r"\d+", m.group(1)))))
print(op)
这不会对数字进行配对。它只是保存为带括号的列表。如何将括号中的值配对并保存为列表。
期望的输出:
[(22027, 22943), (22026, 22939), (22025, 22936), (22025, 22932), (22027, 22929), (22030, 22926)]
【问题讨论】:
标签: python string substring extract re