拆分为多个空格和列表
Split with multiple spaces and lists
我有这样的台词:
AA BB CC dd {ee ff} gg
我想拆分这一行,但要保持列表如下:
AA BB CC dd {ee ff} gg
所以我尝试了 split
但我得到了多个 {}
因为 AA
和 BB
之间有多个 space
我也试过
set splitted_line [regexp -all -inline {\S+} $list]
但是此命令将列表拆分为 {ee
和 ff}
我应该怎么做才能正确分割我的线?
如果你的行中确实有 {
brace-quoted}
单词,你可能可以直接将它作为 Tcl 列表来处理。在这种情况下,“清理它”的第一个停靠点是使用 lrange
:
set splitted_line [lrange $list 0 end]
这也会转换一些其他的东西,比如"
双引号"
字;不知道是不是你想要的
示例会话:
% set example {A BB CCC {dd ee} "ff $gg" }
A BB CCC {dd ee} "ff $gg"
% lrange $example 0 end
A BB CCC {dd ee} {ff $gg}
我有这样的台词:
AA BB CC dd {ee ff} gg
我想拆分这一行,但要保持列表如下:
AA BB CC dd {ee ff} gg
所以我尝试了 split
但我得到了多个 {}
因为 AA
和 BB
我也试过
set splitted_line [regexp -all -inline {\S+} $list]
但是此命令将列表拆分为 {ee
和 ff}
我应该怎么做才能正确分割我的线?
如果你的行中确实有 {
brace-quoted}
单词,你可能可以直接将它作为 Tcl 列表来处理。在这种情况下,“清理它”的第一个停靠点是使用 lrange
:
set splitted_line [lrange $list 0 end]
这也会转换一些其他的东西,比如"
双引号"
字;不知道是不是你想要的
示例会话:
% set example {A BB CCC {dd ee} "ff $gg" }
A BB CCC {dd ee} "ff $gg"
% lrange $example 0 end
A BB CCC {dd ee} {ff $gg}