I have an expression like /a/b/c.d/f.
I need all the characters in between /
or .
. When I tried to split them using split
command, I am getting the result as {} a b c d f {}
. How can I avoid these null strings? Is there a way to get this done using regsub
?
问问题
54 次
3 回答
3
那些空字符串(它们不是空值)表示字符串的开头和结尾有分隔符。如果你有两个相邻的分隔符,你也会得到它们;该split
命令实际上面向处理记录,而不是更“普通”文本中的单词。
提取非分隔符部分的最简单的方法之一(注意:我已经在它的头上翻转了问题)是使用regexp -all -inline
,它将返回所有匹配事物的列表:
set pieces [regexp -all -inline {[^/.]+} "/a/b/c.d/f."]
对此要稍微小心:如果您有捕获子正则表达式,它们也会在您使用-all -inline
选项时返回。
于 2012-11-06T21:41:43.440 回答
0
使用 regsub 我得到了所需的结果。它是 "regsub -all {(/)|(.)} $a "\t" result" 这没有为我提供任何空字符串
于 2012-11-06T20:02:42.350 回答
0
于 2012-11-06T20:18:34.920 回答