Функции для разделения строк
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_substrings разбиений, и остаток строки возвращается в качестве последнего элемента списка.
Например,
- в 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.
Пример
Результат: