【发布时间】:2021-09-01 15:01:55
【问题描述】:
我们的项目中有两种坐标。 带 x、y 和 z 的普通函数
例子:
101, 520, 62
960.93 764.22 59.20
还有 6 位数的扩展版本(2x xyz 用于位置和旋转) 示例:
101 520 62 3 0 0
960.93 764.22 59.20 -0.34 0.00 -89.81
它们可以是负数,可以是浮点数,也可以是四舍五入的数字。 它们可以用逗号分隔,也可以不分隔
使用 python,我正在尝试在字符串中查找任何坐标。
例子:
textbefore 101, 520, 62
GOTO 960.93 796.22 59.20 -0.34 0.00 -89.81
$5GOTO 1960.93 1796.22 159.20 -0.34 0.00 -89.81
501, 513, 162
1040, 1040, 520 text after
error
222, 222
1500, 1500, 60 (1)
1337 1337 65
124.5, 133.6, 35.4
15:13:26 Condition: index_ != StringList::npos [line 178](125, 157, 215)
Allocating shadow map cache 6324 x 6324: 76.28 MB
在完美世界中,输出应该是:
101 520 62
960.93 796.22 59.20 -0.34 0.00 -89.81
1960.93 1796.22 159.20 -0.34 0.00 -89.81
501 513 162
1040 1040 520
1500 1500 60
1337 1337 65
124.5 133.6 35.4
125 157 215
最后一行“分配阴影贴图,有点棘手,如果失败并被列为坐标,那很好。
我在这里使用了这段代码,它很好地过滤了数字,然后我检查了 6 或 3 个数字,但我遇到了数字更多的行的问题。 所以我需要某种逻辑来检查数字是否彼此“接近”甚至被单词分隔。
re.findall("[-+]?[.]?[\d]+(?:,\d\d\d)*[\.]?\d*(?:[eE][-+]?\d+)?", line)
如果可能,代码应该可以在 Python 2.7 上运行(遗憾的是我们远远落后)。
谢谢
【问题讨论】:
-
为什么不用空格分割整个文本,然后删除所有逗号?
标签: python python-2.7 coordinates python-re