如何在tcl
中拆分字符串考虑代码:
set ip "12345678910"
我想将字符串分成4个字符串作为一组,即1234 5678 910 ....
答案 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
调用只是标识函数,即结果等于参数。)
答案 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