2015-02-10 73 views
-1

分割字符串如何在TCL如何在TCL

分割字符串考慮代碼:

set ip "12345678910" 

我想將字符串分割成4串爲一組,即1234 5678 910。 ...

回答

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 
2

如何:

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

這將返回一個列表具有4位數字的每個元素,除了最後能有更少...

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