Функции для разбивки строк
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.
Пример
Результат: