是否可以将字符串的项目转换为每个项目的单独列表? set a [list "1.2 1.3 1.6 1.7 1.8"]
并输出{1.2}{1.3}{1.6}{1.7}{1.8}
答案 0 :(得分:1)
我们可以使用正则表达式来解析字符串,并使用join
来创建结果:
set a "1.2 1.3 1.6 1.7 1.8"
set b [regexp -all -inline {\S+} $a]
set c "{[join $b "}{"]}"
现在,如果我们知道我们有一个正确的列表,我们就可以跳过正则表达式的东西,但最安全的做法是不行。
在这种情况下,我们也可以使用regsub
进行转换。
set c [regsub -all {\s*(\S+)\s*} $a {{\1}}]
然而,一旦所需的转换变得更加复杂,编写这种转换会变得更加困难。
答案 1 :(得分:0)
从字符串中获取列表。我们正在使用空白" "作为列表元素的分隔符
set a [split "1.2 1.3 1.6 1.7 1.8" " "]
印刷
foreach one $a {
puts -nonewline "{$one}"
}
puts ""