Функции для разбивки строк
splitByChar
Разбивает строку на подстроки, разделенные заданным символом. Использует константную строку separator, состоящую ровно из одного символа. Возвращает массив выбранных подстрок. Пустые подстроки могут быть выбраны, если разделитель находится в начале или в конце строки или если имеются несколько подряд идущих разделителей.
Синтаксис
Аргументы
separator— Разделитель, который должен состоять ровно из одного символа. String.s— Строка для разбивки. String.max_substrings— Необязательный параметрInt64, по умолчанию равный 0. Еслиmax_substrings> 0, возвращаемый массив будет содержать не болееmax_substringsподстрок, иначе функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Пустые подстроки могут быть выбраны, когда:
- Разделитель находится в начале или в конце строки;
- Имеется несколько подряд идущих разделителей;
- Исходная строка
sпустая.
Поведение параметра max_substrings изменилось, начиная с ClickHouse v22.11. В версиях до этого max_substrings > 0 означало, что выполнено max_substring разбиений, и остаток строки возвращался как последний элемент списка.
Например,
- в v22.10:
SELECT splitByChar('=', 'a=b=c=d', 2);возвращал['a','b','c=d'] - в v22.11:
SELECT splitByChar('=', 'a=b=c=d', 2);возвращал['a','b']
Поведение, аналогичное ClickHouse до v22.11, можно получить, установив
splitby_max_substrings_includes_remaining_string
SELECT splitByChar('=', 'a=b=c=d', 2) SETTINGS splitby_max_substrings_includes_remaining_string = 1 -- ['a', 'b=c=d']
Пример
Результат:
splitByString
Разбивает строку на подстроки, разделенные строкой. Использует константную строку separator из нескольких символов в качестве разделителя. Если строка separator пуста, она разбивает строку s на массив одиночных символов.
Синтаксис
Аргументы
separator— Разделитель. String.s— Строка для разбивки. String.max_substrings— Необязательный параметрInt64, по умолчанию равный 0. Когдаmax_substrings> 0, возвращенные подстроки будут не более чемmax_substrings, иначе функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Пустые подстроки могут быть выбраны, когда:
- Непустимый разделитель находится в начале или в конце строки;
- Имеется несколько подряд идущих непустых разделителей;
- Исходная строка
sпуста, в то время как разделитель не пуст.
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включается ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пример
Результат:
Результат:
splitByRegexp
Разбивает строку на подстроки, разделенные регулярным выражением. Использует строку регулярного выражения regexp в качестве разделителя. Если regexp пуст, она разбивает строку s на массив одиночных символов. Если совпадение для этого регулярного выражения не найдено, строка s не будет разбита.
Синтаксис
Аргументы
regexp— Регулярное выражение. Константа. String или FixedString.s— Строка для разбивки. String.max_substrings— Необязательный параметрInt64, по умолчанию равный 0. Когдаmax_substrings> 0, возвращенные подстроки будут не более чемmax_substrings, иначе функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Пустые подстроки могут быть выбраны, когда:
- Непустимое совпадение регулярного выражения находится в начале или в конце строки;
- Имеется несколько подряд идущих непустых совпадений регулярного выражения;
- Исходная строка
sпуста, в то время как регулярное выражение не пусто.
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включается ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пример
Результат:
Результат:
splitByWhitespace
Разбивает строку на подстроки, разделенные пробельными символами. Возвращает массив выбранных подстрок.
Синтаксис
Аргументы
s— Строка для разбивки. String.max_substrings— Необязательный параметрInt64, по умолчанию равный 0. Когдаmax_substrings> 0, возвращенные подстроки будут не более чемmax_substrings, иначе функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включается ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пример
Результат:
splitByNonAlpha
Разбивает строку на подстроки, разделенные пробельными и пунктуационными символами. Возвращает массив выбранных подстрок.
Синтаксис
Аргументы
s— Строка для разбивки. String.max_substrings— Необязательный параметрInt64, по умолчанию равный 0. Когдаmax_substrings> 0, возвращенные подстроки будут не более чемmax_substrings, иначе функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включается ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пример
arrayStringConcat
Конкатенирует строковые представления значений, перечисленных в массиве, с разделителем. separator является необязательным параметром: константная строка, по умолчанию установленная в пустую строку. Возвращает строку.
Синтаксис
Пример
Результат:
alphaTokens
Выбирает подстроки из последовательных байтов из диапазонов a-z и A-Z. Возвращает массив подстрок.
Синтаксис
Псевдоним: splitByAlpha
Аргументы
s— Строка для разбивки. String.max_substrings— Необязательный параметрInt64, по умолчанию равный 0. Когдаmax_substrings> 0, возвращенные подстроки будут не более чемmax_substrings, иначе функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включается ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пример
extractAllGroups
Извлекает все группы из непересекающихся подстрок, которые соответствуют регулярному выражению.
Синтаксис
Аргументы
text— String или FixedString.regexp— Регулярное выражение. Константа. String или FixedString.
Возвращаемые значения
- Если функция находит хотя бы одну совпадающую группу, она возвращает
Array(Array(String))столбец, сгруппированный по group_id (от 1 до N, где N — это количество групп захвата вregexp). Если нет никакой соответствующей группы, возвращается пустой массив. Array.
Пример
Результат:
ngrams
Разбивает строку в кодировке UTF-8 на n-граммы из ngramsize символов.
Синтаксис
Аргументы
string— Строка. String или FixedString.ngramsize— Размер n-граммы. UInt.
Возвращаемые значения
Пример
Результат:
tokens
Разбивает строку на токены, используя неалфавитные ASCII символы в качестве разделителей.
Аргументы
input_string— Любой набор байтов, представленный в виде объекта типа String.
Возвращаемое значение
- Результирующий массив токенов из входной строки. Array.
Пример
Результат: