【问题标题】:TCL, extract 2 integers from string into list?TCL,从字符串中提取2个整数到列表中?
【发布时间】:2017-07-06 06:10:13
【问题描述】:
我有 2 个这样格式化的字符串:
(1234, 4567)
我有一个清单
points {0 1 2 4}
我想从第一个列表中提取 2 个整数并替换列表中的前两个整数,然后从第二个列表中提取另外两个整数并替换列表中的第三个和第四个整数,所以最后我会有一个来自两个字符串的 4 个整数的列表。
到目前为止,我已经尝试了各种方法,但总是在列表中出现我不想要的错误或括号。我觉得我错过了实现这一目标的简单方法。
【问题讨论】:
标签:
string
list
integer
tcl
【解决方案1】:
使用第一组值,可以用scan或regexp解析;在这种情况下,我认为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}