ClickHouse/docs/ru/sql-reference/functions/splitting-merging-functions.md
2020-07-19 12:37:09 +03:00

3.7 KiB
Raw Blame History

Функции разбиения и слияния строк и массивов

splitByChar(separator, s)

Разбивает строку на подстроки, используя в качестве разделителя separator. separator должен быть константной строкой из ровно одного символа. Возвращается массив выделенных подстрок. Могут выделяться пустые подстроки, если разделитель идёт в начале или в конце строки, или если идёт более одного разделителя подряд.

splitByString(separator, s)

То же самое, но использует строку из нескольких символов в качестве разделителя. Строка должна быть непустой.

arrayStringConcat(arr[, separator])

Склеивает строки, перечисленные в массиве, с разделителем separator. separator - необязательный параметр, константная строка, по умолчанию равен пустой строке. Возвращается строка.

alphaTokens(s)

Выделяет подстроки из подряд идущих байт из диапазонов a-z и A-Z. Возвращается массив выделенных подстрок.

Пример:

SELECT alphaTokens('abca1abc')
┌─alphaTokens('abca1abc')─┐
│ ['abca','abc']          │
└─────────────────────────┘

extractAllGroups(text, regexp)

Выделяет все группы из неперекрывающихся подстрок, которые соответствуют регулярному выражению.

Синтаксис

extractAllGroups(text, regexp) 

Параметры

Возвращаемые значения

  • Если найдена хотя бы одна подходящая группа, функция возвращает столбец вида Array(Array(String)), сгруппированный по идентификатору группы (от 1 до N, где N — количество групп с захватом содержимого в regexp).

  • Если подходящих групп не найдено, возвращает пустой массив.

Тип: Array.

Пример использования

Запрос:

SELECT extractAllGroups('abc=123, 8="hkl"', '("[^"]+"|\\w+)=("[^"]+"|\\w+)');

Результат:

┌─extractAllGroups('abc=123, 8="hkl"', '("[^"]+"|\\w+)=("[^"]+"|\\w+)')─┐
│ [['abc','123'],['8','"hkl"']]                                         │
└───────────────────────────────────────────────────────────────────────┘

Оригинальная статья