regex - Tcl列表输出修改

标签 regex tcl

我有一个名为“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/

相关文章:

regex - 如何使用可选组作为以下首选 java 语法使用 Regex 解析文本

用于匹配多词名称的 Python 正则表达式

php - [a-z] 会匹配 PREG/PCRE 中的重音字符吗?

Javascript,字符串格式 : I need the first 4 letters of a string, 小写,省略空格,删除符号

string - 字符串的定时安全比较

arguments - 为什么这个没有参数的 TCL proc 不起作用?

PHP 正则表达式 - 从字符串的开头和结尾匹配

tcl - 设置 TCL 以访问 tcl 库

C 程序将控制权交给 TCL/Tk GUI - 如何在关闭应用程序时运行代码?

TCL-获取执行进程的日志