Как разбить строку в TclКак разбить строку в Tcl
рассмотрим код:
set ip "12345678910"
Я хочу разделить строку на 4 строки как один комплект, т.е. 1234 5678 910. ...
Как разбить строку в TclКак разбить строку в Tcl
рассмотрим код:
set ip "12345678910"
Я хочу разделить строку на 4 строки как один комплект, т.е. 1234 5678 910. ...
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
Как насчет:
regexp -all -inline {\d{1,4}} 12345678910
Это возвращает список с каждым элементом, имеющим 4-х цифр, за исключением последнего, который может иметь меньше ...
Я обычно советую против использования 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
вызов просто единична функци, то есть результат равен аргументу.)