split
Имя
split — Разделить строку на правильный список TclСинтаксис
split строка ?символыРазбиения?Описание
Возвращает список, созданный путём разделения строки на каждом символе, который есть в аргументе символыРазбиения. Каждый элемент результирующего списка будет состоять из символов из строки, находящихся между экземплярами символов в символыРазбиения. Пустые элементы списка будут генерироваться, если строка содержит смежные символы в символыРазбиения, или если первый или последний символ строки находится в символыРазбиения. Если символыРазбиения — пустая строка, каждый символ строки становится отдельным элементом результирующего списка. символыРазбиения по умолчанию — стандартные пробельные символы.Примеры
Разделить имя группы USENET на её иерархические компоненты:split "comp.lang.tcl" .
→ comp lang tcl Посмотрите, как команда split разделяет на каждый символ в символыРазбиения, что может привести к потере информации, если вы не внимательны:
split "alpha beta gamma" "temp"
→ al {ha b} {} {a ga} {} a Извлечь список слов из строки, которая не является правильно сформированным списком:
split "Example with {unbalanced brace character"
→ Example with \{unbalanced brace character Разделить строку на составляющие символы
split "Hello world" {}
→ H e l l o { } w o r l d Парсинг файлов, ориентированных на записи
Разбор файла Unix /etc/passwd, который содержит по одной записи на строку, при этом каждая строка состоит из списка полей, разделённых двоеточием:## Read the file
set fid [open /etc/passwd]
set content [read $fid]
close $fid
## Split into records on newlines
set records [split $content "\n"]
## Iterate over the records
foreach rec $records {
## Split into fields on colons
set fields [split $rec ":"]
## Assign fields to variables and print some out...
lassign $fields \
userName password uid grp longName homeDir shell
puts "$longName uses [file tail $shell] for a login shell"
} См. также
join, list, string
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/split.htm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/split.htm