2017-04-19 243 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 "" 
相關問題