【发布时间】:2010-04-05 11:18:14
【问题描述】:
有问题的字符串(从文件中读取):
如果(真)那么
{
_this = createVehicle ["Land_hut10", [6226.8901, 986.091, 4.5776367e-005], [], 0, "CAN_COLLIDE"];
_vehicle_10 = _this;
_this setDir -2.109278;
};
通过以下方式从大量相似(所有相同文件)字符串中检索:
get_stringR(string,"if","};")
及功能码:
def get_stringR(a,b,c)
b = a.index(b)
b ||= 0
c = a.rindex(c)
c ||= b
r = a[b,c]
返回 r
结束
到目前为止,这工作正常,但我想做的是在“createVehicle”之后选择数组,以下(我认为)应该可以工作。
newstring = get_string(myString,"\[","\];")
注意 get_string 与 get_stringR 相同,只是它两次都使用模式的第一次出现,而不是第一次和最后一次出现。
输出应该是:
["Land_hut10", [6226.8901, 986.091, 4.5776367e-005], [], 0, "CAN_COLLIDE"];
相反,它是通过“puts”给出的:
["Land_hut10", [6226.8901, 986.091, 4.5776367e-005], [], 0, "CAN_COLLIDE"]; _vehicle_10 = _this; _this setDir
超过了应该检索的点大约 40 个字符,这很奇怪...... 第二个注意事项,使用 get_string 和 get_stringR 会产生与给定参数的完全相同结果。
然后我决定将以下内容添加到我的 get_string 代码中:
b = a.index(b)
b ||= 0
c = a.index(c)
c ||= b
如果 c > 40 那么
c -= 40
结尾
r = a[b,c]
返回 r
它按预期工作(对于文件中的每个“块”,即使该数组后面的字符串在任何方面都不相同),但显然有些事情是不对的:)。
【问题讨论】: