TCL,从字符串中提取2个整数到列表中?

时间:2017-07-06 06:10:14

标签: string list integer tcl

我有两个格式化的字符串:

(1234, 4567)

我有一个清单

points {0 1 2 4}

我想从第一个列表中提取2个整数并替换列表中的前两个整数,之后从第二个列表中提取另外两个整数并替换列表中的第3个和第4个整数,所以最后我会有两个字符串中的4个整数列表。

到目前为止,我已尝试过各种各样的事情,但总是在列表中出现我不想要的错误或括号。我觉得我错过了这么简单的方法。

1 个答案:

答案 0 :(得分:0)

使用第一组值,您可以使用scanregexp进行解析;在这种情况下,我认为scan看起来更好:

set input "(1234, 5678)"
scan $input "(%d,%d)" a b

要更新Tcl列表(正式地,变量中的一个),请使用lset;你可以给它一系列(从零开始)的索引,以导航到你想要更新的列表中的确切位置:

set workingArea "points {0 1 2 4}"
lset workingArea 1 2 $a
lset workingArea 1 3 $b

puts $workingArea
# prints: points {0 1 1234 5678}