You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tcl输入解析:如何将带引号字符串作为单个列表项?

Tcl实现带引号的输入拆分需求

要实现将带双引号的输入内容作为单个列表项拆分,不能直接用split命令(它会拆分所有空格),可以借助正则表达式匹配符合要求的项,具体代码如下:

set cmd [string toupper [gets stdin]]
# 匹配双引号包裹的内容或非空白连续字符
set items [regexp -all -inline {"[^"]*"|\S+} $cmd]
# 去除每个项的首尾双引号
set items [lmap item $items {string trim $item "\""}]

代码说明:

  • regexp -all -inline:将所有匹配结果以列表形式返回,匹配规则优先识别双引号包裹的内容("[^"]*"),再识别非空白的连续字符(\S+)
  • lmap + string trim:遍历匹配到的每个项,去掉首尾的双引号,让带引号的内容以纯文本形式成为单个列表项

测试输入"HELLO THERE" 1 2 3,最终items列表会包含HELLO THERE、1、2、3四个项,满足需求。

内容的提问来源于stack exchange,提问作者SparkyNZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:45:34