Spec-Zone.ru › Tcl/Tk

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API