在处理空字符串时需要指导

时间:2012-11-06 19:33:24

标签: regex tcl

我的表达式为/a/b/c.d/f. 我需要/.之间的所有字符。当我尝试使用split命令拆分它们时,我得到的结果为{} a b c d f {}。我怎样才能避免这些空字符串?有没有办法使用regsub完成此操作?

3 个答案:

答案 0 :(得分:3)

那些空字符串(它们为空)表示在字符串的开头和结尾有分隔符。如果你有两个彼此相邻的分隔符,你也会得到它们; split命令实际上是针对处理记录而不是处理更“普通”文本中的单词。

提取非分隔符部分的最简单方法之一(注意:我在这里解决了问题)是使用regexp -all -inline,它将返回所有匹配内容的列表:< / p>

set pieces [regexp -all -inline {[^/.]+} "/a/b/c.d/f."]

要小心:如果你有捕获子regexp,那么当你使用-all -inline选项时也会返回它们。

答案 1 :(得分:0)

使用regsub我得到了所需的结果。 它是“regsub -all {(/)|(。)} $ a”\ t“结果” 这没有提供任何空字符串

答案 2 :(得分:0)

我做了两种不同的方式:

  1. Matching and saving them
  2. Replacing it (no tcl exactly)
  3. 我希望它能帮到你一点点,如果你想添加大写字母,也可以使用A-Z