如何在tcl中拆分字符串

时间:2015-02-10 07:18:18

标签: split arguments tcl divide

如何在tcl

中拆分字符串

考虑代码:

set ip "12345678910"

我想将字符串分成4个字符串作为一组,即1234 5678 910 ....

3 个答案:

答案 0 :(得分:2)

怎么样:

regexp -all -inline {\d{1,4}} 12345678910

这将返回一个列表,其中每个元素都有4位数字,除了最后一个可以有更少的...

答案 1 :(得分:1)

我通常建议不要使用regexp,但是regexp -all -inline {\d{1,4}} 12345678910就像在船长的回答中可能实际上是最好的解决方案。如果字符不必是数字,regexp -all -inline {.{1,4}} 1a2b3c4d5e6将允许字符串中的任何字符。

另一种解决方案是使用lmap {a b c d} [split 12345678910 {}] {lindex $a$b$c$d}

(单参数lindex调用只是标识函数,即结果等于参数。)

文档:lindexlmapregexpsplit

答案 2 :(得分:0)

set ip "12345678910"
set len [ string length $ip ]
set str_start 0; #Start Index
set str_end 3; #End Index

for { set i 0 }  { $str_start < $len } { incr i } { 
    #Appending it as 'list'
    lappend list_result [ string range $ip $str_start $str_end ]
    #Increasing the index values
    incr str_start 4
    incr str_end 4
}
puts $list_result

<强>输出

1234 5678 910