说我有这样的字符串:
set str "AAA B C DFG 142 56"
现在我想得到如下列表:
{AAA B C DFG 142 56}
为此,我想使用split函数,但在这种情况下,我得到一些额外的空列表{}。我怎么能得到上面的清单?
答案 0 :(得分:13)
set text "Some arbitrary text which might include \$ or {"
set wordList [regexp -inline -all -- {\S+} $text]
答案 1 :(得分:6)
您可以随时执行以下操作:
set str "AAA B C DFG 142 56"
set newStr [join $str " "]
它将输出以下内容:
{AAA B C DFG 142 56}
答案 2 :(得分:4)
来自textutil::split的tcllib模块有一个splitx
触发器,可以完全按照您的需要进行操作
package require textutil::split
set result [textutil::split::splitx $str]
答案 3 :(得分:1)
答案 4 :(得分:0)
我知道这很旧,但是如果将来有人遇到这种情况,我将添加我的解决方案。我将未知数量的空格替换为一个空格字符,以使拆分正常工作,类似于Scott的答案:
set str "AAA B C DFG 142 56"
regsub -all { +} $str " " str ; # str is now "AAA B C DFG 142 56"
set splitout [split $str { +}] ; # Split on one or more spaces.