2017-04-19 22 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

を印刷するリスト要素の区切り文字として "" 空白を使用しています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" " "] 

は多分[ `設定のres [正規表現-all -inline {\ S +} $ A]`](HTTPS

foreach one $a { 
    puts -nonewline "{$one}" 
} 
puts "" 
関連する問題