A-A+

TCL字符串和列表转换命令split和join

2020年02月26日 脚本 阅读 5,161 views 次

在TCL中split命令将字符串分成几个部分,然后可以对各个部分独立地进行处理。它会创建一个列表,列表中的元素就是字符串的各个部分。命令格式为:

split string ?splitChars?

split的第一个参数是待分割的字符串,第二个参数是一个或多个分割字符。 split会找到字符串中所有的分割字符。然后它会创建一个列表,其元素就是分割字符之间的子字符串。字符串的边界也被作为分割字符对待。 例如,有一个变量,其内容是由逗号分开的值,使用split把它转化成一个列表,变量中的每一个值成为列表的一个元素。

set x "Anita Sanchez, 35, VP Marketing"

set y 39,72, ,-17,

split $x ,

→{Anita Sanchez} 35 {VP Marketing}

split $y ,

→39 72 {} -17 {}

如果子符串中连续出现分割字符,或者分割字符出现在字符串的开头或结尾,就像上面的第二个示例那样,结果中就会产生空元素。分割字符本身会被抛弃。 可以设定由多个字符组成分隔符,例如

split xbaybz ab

→x {} y z

如果指定为分隔字符的是空字符串,那么会把字符串的每一个字符都分开,作为新列表中的独立元素。

split "Hello world" {}

→ H e l l o {} w o r l d

TCL中的join命令大体上是split命令的逆操作。它把列表元素串接成一个字符串,元素之间用指定的分隔符号隔开。格式为:

join list ?joinString?

join获取两个参数:一个列表和一个分隔字符串。分隔字符串可以包括任意多个字符,也可以不指定分隔符。例如:

join {{} usr include sys types.h) /

→/usr/include/sys/types.h

set x {24 112 5}

expr [join $x +]

→141

第一个示例以/作为分隔符,连接产生了一个Unix类型的路径名称。第二个示例以+作为分隔符,连接产生了一个TCL表达式。

个人公众号“数字化设计CAX联盟”,欢迎关注,共同交流
标签:
为您推荐:

给我留言

© 坐倚北风 版权所有 严禁镜像复制 苏ICP备15034888号. 基于 Ality 主题定制 AliCMS
联系邮箱:leanwind@163.con,微信公众号:数字化设计CAX联盟

用户登录

分享到: