2017-04-19 244 views
0

是否可以将字符串的项目转换为每个项目的单独列表? set a [list "1.2 1.3 1.6 1.7 1.8"]并有像{1.2}{1.3}{1.6}{1.7}{1.8}使用tcl/tk将字符串分隔到不同列表中

+0

也许['RE集合[正则表达式 - 所有-inline {\ S +} $ A]'](https://开头ideone.com/JEi5zP)? –

+0

它不工作。我尝试了同样的命令。 @WiktorStribiżew –

+0

请注意,您想要的格式不是列表,并且不能使用Tcl列表命令处理。 –

回答

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}}] 

但是,一旦所需的转换变得更加复杂,编写这种转换可能会变得相当困难。

0

从字符串获取列表。我们使用的空白 “” 作为列表元素

set a [split "1.2 1.3 1.6 1.7 1.8" " "] 

的分离打印

foreach one $a { 
    puts -nonewline "{$one}" 
} 
puts "" 
相关问题