假设我有一个这样的字符串:
set str "AAA B C DFG 142 56"
现在我想要获取以下列表:
{AAA B C DFG 142 56}
为此,我想使用split函数,但在这种情况下,我会得到一些额外的空列表{}。 我该如何获得上面的列表?
假设我有一个这样的字符串:
set str "AAA B C DFG 142 56"
{AAA B C DFG 142 56}
set text "Some arbitrary text which might include \$ or {"
set wordList [regexp -inline -all -- {\S+} $text]
看这里:将字符串拆分为单词。
set str "AAA B C DFG 142 56"
set newStr [join $str " "]
{AAA B C DFG 142 56}
tcllib中的textutil::split模块有一个splitx
过程,正好可以满足您的要求。
package require textutil::split
set result [textutil::split::splitx $str]
我知道这已经过时了,但是以防其他人在未来遇到此问题,我会添加我的解决方案。我将未知数量的空格替换为一个空格字符,以使拆分函数能够正确工作,类似于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.
regexp
可以返回一个列表。我本来会用这个方法,它几乎一样好[split [regsub { {2,}} $string " "] " "]
。regsub 替换所有长度为 2 或更多的空格序列为单个空格,然后 split 在该字符上拆分。 - drysdamfile delete -- $file
、switch -exact -- $word
等)。 - glenn jackman