我有一个名为“a”的列表,需要执行一些基本的列表操作和命令才能在另一个列表“b”中获得所需的结果
此列表“a”可以按我在下面显示的示例中的任何顺序包含更多元素
(%) set a {{123.4:xyz {p_q[5]}} {123.4:abc {r_s[6]}} mno}
{{123.4:xyz {p_q[5]}} {123.4:abc {r_s[6]} mno}
目前,我尝试了这个并得到了
(%) set b ""
(%)
(%) foreach l $a {
lappend b [regsub -all [lindex $l 0] $l ""]
}
(%) puts $b
{{p_q[5]}} {{r_s[6]}} {}
相反,我希望“b”的输出如下
p_q[5] r_s[6] mno
Tcl版本:8.4.6
最佳答案
所以这又是给你的一封信:
% set a {{123.4:xyz {p_q[5]}} {123.4:abc {r_s[6]}} mno}
{123.4:xyz {p_q[5]}} {123.4:abc {r_s[6]}} mno
% set b [lsearch -all -regexp -not -inline [regsub -all "\{|\}" $a ""] ":"]
{p_q[5]} {r_s[6]} mno
如果您还想删除 {},则
%set b [regsub -all "\{|\}" $b ""]
关于regex - Tcl列表输出修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19146145/