Функции разбиения строк
Приведённая ниже документация сгенерирована из системной таблицы system.functions.
alphaTokens
Добавлена в: v1.1
Выбирает подстроки из последовательностей байтов в диапазонах символов a-z и A-Z и возвращает массив выбранных подстрок.
Синтаксис
Псевдонимы: splitByAlpha
Аргументы
s— Строка, которую нужно разбить.Stringmax_substrings— Необязательный параметр. Когдаmax_substrings > 0, количество возвращаемых подстрок не будет превышатьmax_substrings, в противном случае функция вернёт максимально возможное количество подстрок.Int64
Возвращаемое значение
Возвращает массив полученных подстрок строки s. Array(String)
Примеры
Пример использования
arrayStringConcat
Добавлено в версии: v1.1
Соединяет строковые представления значений, перечисленных в массиве, с указанным разделителем; этот параметр является необязательным и по умолчанию равен пустой строке.
Синтаксис
Аргументы
arr— Массив, элементы которого нужно конкатенировать.Array(T)separator— Необязательный параметр. Строка-разделитель. По умолчанию — пустая строка.const String
Возвращаемое значение
Возвращает конкатенированную строку. String
Примеры
Пример использования
extractAllGroupsVertical
Введена в версии v20.5
Находит все группы в строке с использованием регулярного выражения и возвращает массив массивов, где каждый вложенный массив содержит совпадающие фрагменты из каждой группы, упорядоченные по порядку появления во входной строке.
Синтаксис
Псевдонимы: extractAllGroups
Аргументы
s— Входная строка, из которой выполняется извлечение.StringилиFixedStringregexp— Регулярное выражение для поиска совпадений.const Stringилиconst FixedString
Возвращаемое значение
Возвращает массив массивов, где каждый вложенный массив содержит группы, захваченные при одном совпадении. Каждое совпадение формирует массив с элементами, соответствующими группам захвата в регулярном выражении (группа 1, группа 2 и т. д.). Если совпадения не найдены, возвращается пустой массив. Array(Array(String))
Примеры
Пример использования
ngrams
Появилась в версии v21.11
Разбивает строку в кодировке UTF-8 на n-граммы длиной N.
Синтаксис
Аргументы
s— входная строка.StringилиFixedStringN— длина n-граммы.const UInt8/16/32/64
Возвращаемое значение
Возвращает массив n-грамм. Array(String)
Примеры
Пример использования
reverseBySeparator
Добавлена в: v26.2
Разворачивает порядок подстрок в строке, разделённой указанным разделителем. Эта функция разделяет строку по разделителю, инвертирует порядок получившихся частей и соединяет их обратно, используя тот же разделитель. Полезна для разбора доменных имён, путей к файлам или других иерархических данных, где требуется изменить порядок компонентов.
Примеры:
- reverseBySeparator('www.google.com') возвращает 'com.google.www'
- reverseBySeparator('a/b/c', '/') возвращает 'c/b/a'
- reverseBySeparator('x::y::z', '::') возвращает 'z::y::x'
Синтаксис
Аргументы
string— Входная строка, в которой нужно развернуть порядок её частей.Stringseparator— Строка-разделитель, используемая для определения частей. Если не указан, используется '.' (точка). По умолчанию: '.'String
Возвращаемое значение
Возвращает строку с подстроками, упорядоченными справа налево относительно исходной строки и объединёнными тем же разделителем. String
Примеры
Простой пример разворота домена
Реверс пути
Произвольный разделитель
Особый случай с точками
Один элемент
Пустой символ-разделитель
splitByChar
Введена в: v1.1
Разбивает строку, в которой подстроки разделены указанной константной строкой separator длиной ровно в один символ, на массив подстрок.
Пустые подстроки могут появляться, если разделитель встречается в начале или в конце строки, либо если есть несколько последовательных разделителей.
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, включается ли оставшаяся часть строки в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пустые подстроки могут появляться, когда:
- разделитель встречается в начале или в конце строки;
- есть несколько последовательных разделителей;
- исходная строка
sпуста.
Синтаксис
Аргументы
separator— Разделитель должен быть однобайтовым символом.Strings— Строка для разбиения.Stringmax_substrings— Необязательный параметр. Еслиmax_substrings > 0, возвращаемый массив будет содержать не болееmax_substringsподстрок, в противном случае функция вернёт максимально возможное количество подстрок. Значение по умолчанию —0.Int64
Возвращаемое значение
Возвращает массив полученных подстрок. Array(String)
Примеры
Пример использования
splitByNonAlpha
Введена в версии: v21.9
Разбивает строку, разделённую пробельными символами и знаками пунктуации, на массив подстрок.
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) задаёт, будет ли оставшаяся строка включена в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Синтаксис
Аргументы
s— строка для разбиения.Stringmax_substrings— необязательный аргумент. Еслиmax_substrings > 0, количество возвращаемых подстрок не превышаетmax_substrings, иначе функция возвращает максимально возможное количество подстрок. Значение по умолчанию:0.Int64
Возвращаемое значение
Возвращает массив подстрок, выделенных из s. Array(String)
Примеры
Пример использования
splitByRegexp
Впервые представлена в: v21.6
Разбивает строку по указанному регулярному выражению на массив подстрок. Если переданное регулярное выражение пустое, строка будет разбита на массив отдельных символов. Если для регулярного выражения не найдено совпадений, строка не будет разбита.
Пустые подстроки могут появиться, когда:
- непустое совпадение регулярного выражения находится в начале или конце строки,
- есть несколько последовательных непустых совпадений регулярного выражения,
- исходная строка пуста, а регулярное выражение не пустое.
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, будет ли оставшаяся часть строки включена в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Синтаксис
Аргументы
regexp— регулярное выражение. Константа.StringилиFixedStrings— строка для разбиения.Stringmax_substrings— необязательный параметр. Еслиmax_substrings > 0, количество возвращаемых подстрок не превышаетmax_substrings, в противном случае функция вернёт максимально возможное количество подстрок. Значение по умолчанию:0.Int64
Возвращаемое значение
Возвращает массив подстрок, полученных из s. Array(String)
Примеры
Пример использования
Пустое регулярное выражение
splitByString
Впервые представлена в: v1.1
Разбивает строку с константным разделителем separator, состоящим из нескольких символов, на массив подстрок.
Если строка separator пуста, строка s будет разбита на массив отдельных символов.
Пустые подстроки могут получаться в следующих случаях:
- Непустой разделитель находится в начале или в конце строки
- Есть несколько последовательных непустых разделителей
- Исходная строка
sпуста, а разделитель не пуст
Параметр splitby_max_substrings_includes_remaining_string (значение по умолчанию: 0) определяет, включается ли оставшаяся часть строки в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Синтаксис
Аргументы
separator— разделитель.Strings— строка, которую нужно разбить.Stringmax_substrings— необязательный параметр. Еслиmax_substrings > 0, количество возвращаемых подстрок не превышаетmax_substrings, иначе функция вернёт максимально возможное количество подстрок. Значение по умолчанию:0.Int64
Возвращаемое значение
Возвращает массив выбранных подстрок строки s Array(String)
Примеры
Пример использования
Пустой разделитель
splitByWhitespace
Введена в: v21.9
Разбивает строку, разделённую пробельными символами, на массив подстрок.
Параметр splitby_max_substrings_includes_remaining_string (по умолчанию: 0) определяет, включается ли оставшаяся часть строки в последний элемент результирующего массива при аргументе max_substrings > 0.
Синтаксис
Аргументы
s— Строка, которую нужно разделить.Stringmax_substrings— Необязательный параметр. Еслиmax_substrings > 0, количество возвращаемых подстрок не превышаетmax_substrings, в противном случае функция вернёт максимально возможное количество подстрок. Значение по умолчанию:0.Int64
Возвращаемое значение
Возвращает массив выбранных подстрок строки s. Array(String)
Примеры
Пример использования
tokens
Добавлена в: v21.11
Разбивает строку на токены с использованием указанного токенайзера.
Доступные токенайзеры:
splitByNonAlphaразбивает строки по неалфавитно-цифровым ASCII-символам (см. также функцию splitByNonAlpha).splitByString(S)разбивает строки по определённым пользовательским строкам-разделителямS(см. также функцию splitByString). Разделители можно задать с помощью необязательного параметра, например,tokenizer = splitByString([', ', '; ', '\n', '\\']). Обратите внимание, что каждая строка может состоять из нескольких символов (', 'в примере). Список разделителей по умолчанию, если он не задан явно (например,tokenizer = splitByString), — это один пробел[' '].ngrams(N)разбивает строки на одинаковые по размеруN-граммы (см. также функцию ngrams). Длину n-граммы можно задать с помощью необязательного целочисленного параметра от 1 до 8, например,tokenizer = ngrams(3). Размер n-граммы по умолчанию, если он не задан явно (например,tokenizer = ngrams), равен 3.sparseGrams(min_length, max_length, min_cutoff_length)разбивает строки на n-граммы переменной длины как минимум изmin_lengthи не более чем изmax_length(включительно) символов (см. также функцию sparseGrams). Если не указано явно, значенияmin_lengthиmax_lengthпо умолчанию равны 3 и 100. Если передан параметрmin_cutoff_length, возвращаются только n-граммы с длиной не меньшеmin_cutoff_length. По сравнению сngrams(N)токенайзерsparseGramsсоздаёт n-граммы переменной длины, что позволяет более гибко представлять исходный текст. Например,tokenizer = sparseGrams(3, 5, 4)внутренне формирует 3-, 4-, 5-граммы из входной строки, но возвращаются только 4- и 5-граммы.arrayне выполняет токенизацию, то есть каждое значение в строке (элемент массива) является токеном (см. также функцию array).
В случае токенайзера splitByString, если токены не образуют префиксный код, вам, вероятно, нужно, чтобы при сопоставлении более длинные разделители имели приоритет.
Для этого передавайте разделители в порядке убывания длины.
Например, при separators = ['%21', '%'] строка %21abc будет токенизирована как ['abc'], тогда как при separators = ['%', '%21'] она будет токенизирована как ['21ac'] (что, вероятно, не соответствует ожидаемому результату).
Синтаксис
Аргументы
value— Входная строка.StringилиFixedStringtokenizer— Токенизатор, который будет использоваться. Допустимые аргументы:splitByNonAlpha,ngrams,splitByString,arrayиsparseGrams. Необязательный параметр; если явно не задан, по умолчанию используетсяsplitByNonAlpha.const Stringn— Используется только если аргументtokenizerравенngrams: необязательный параметр, определяющий длину n-грамм. Если явно не задан, по умолчанию используется значение3.const UInt8separators— Используется только если аргументtokenizerравенsplit: необязательный параметр, определяющий строки-разделители. Если явно не задан, по умолчанию используется[' '].const Array(String)min_length— Используется только если аргументtokenizerравенsparseGrams: необязательный параметр, определяющий минимальную длину граммы, по умолчанию3.const UInt8max_length— Используется только если аргументtokenizerравенsparseGrams: необязательный параметр, определяющий максимальную длину граммы, по умолчанию100.const UInt8min_cutoff_length— Используется только если аргументtokenizerравенsparseGrams: необязательный параметр, определяющий минимальную длину отсечения.const UInt8
Returned value
Возвращает массив токенов, полученный из входной строки. Array
Examples
Default tokenizer
Токенизатор N-грамм