说我有一个像这样的字符串:
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]
请参阅:将字符串拆分为单词。
哇,我不知道
regexp
可以返回清单。我本来会做的,这几乎一样好[split [regsub { {2,}} $string " "] " "]
。regsub用单个空格替换所有长度为2或更大的空格序列,然后在该空格上拆分。在这里设置wordList [regexp -inline -all-{\ S +} $ text]“-”是什么意思?
这是在情况需要的正则表达式开始以“ - ”字符,再加上它只是一个良好的习惯进入(此加上许多Tcl命令的第一个非开关参数可以是可能用户输入:
file delete -- $file
,switch -exact -- $word
,...)顺便说一句,请参阅stackoverflow.com/questions/3369458/… 和hume.com/html84/mann/regexp.html中的-all和-inline标志。