Функции для разбивки строк
splitByChar
Разбивает строку на подстроки, разделенные указанным символом. Использует постоянную строку separator, состоящую ровно из одного символа. Возвращает массив выбранных подстрок. Пустые подстроки могут быть выбраны, если разделитель находится в начале или конце строки, или если есть несколько последовательных разделителей.
Синтаксис
Аргументы
separator— Разделитель должен быть символом с одним байтом. Строка.s— Строка для разбивки. Строка.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— Разделитель. Строка.s— Строка для разбивки. Строка.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— Регулярное выражение. Константа. Строка или FixedString.s— Строка для разбивки. Строка.max_substrings— Необязательный параметрInt64, по умолчанию равен 0. Когдаmax_substrings> 0, возвращаемые подстроки будут не более чемmax_substrings, в противном случае функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Пустые подстроки могут быть выбраны, когда:
- Непустое совпадение регулярного выражения находится в начале или конце строки;
- Есть несколько последовательных непустых совпадений регулярного выражения;
- Исходная строка
sпуста, а регулярное выражение непустое.
Установка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включена ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пример
Результат:
Результат:
splitByWhitespace
Разбивает строку на подстроки, разделенные символами пробела. Возвращает массив выбранных подстрок.
Синтаксис
Аргументы
s— Строка для разбивки. Строка.max_substrings— Необязательный параметрInt64, по умолчанию равен 0. Когдаmax_substrings> 0, возвращаемые подстроки будут не более чемmax_substrings, в противном случае функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Установка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включена ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пример
Результат:
splitByNonAlpha
Разбивает строку на подстроки, разделенные символами пробела и пунктуации. Возвращает массив выбранных подстрок.
Синтаксис
Аргументы
s— Строка для разбивки. Строка.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— Строка для разбивки. Строка.max_substrings— Необязательный параметрInt64, по умолчанию равен 0. Когдаmax_substrings> 0, возвращаемые подстроки будут не более чемmax_substrings, в противном случае функция вернет столько подстрок, сколько возможно.
Возвращаемое значение(я)
Установка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включена ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.
Пример
extractAllGroups
Извлекает все группы из неперекрывающихся подстрок, соответствующих регулярному выражению.
Синтаксис
Аргументы
text— Строка или FixedString.regexp— Регулярное выражение. Константа. Строка или FixedString.
Возвращаемые значения
- Если функция находит хотя бы одну совпадающую группу, она возвращает
Array(Array(String))столбец, сгруппированный по group_id (от 1 до N, где N — число захватывающих групп вregexp). Если группы совпадения отсутствуют, возвращается пустой массив. Массив.
Пример
Результат:
ngrams
Разбивает строку UTF-8 на n-граммы размером ngramsize символов. Эта функция устарела. Рекомендуется использовать tokens с токенизатором ngram. Функция может быть удалена в какой-то момент в будущем.
Синтаксис
Аргументы
string— Строка. Строка или FixedString.ngramsize— Размер n-граммы. UInt.
Возвращаемые значения
Пример
Результат:
tokens
Разбивает строку на токены с использованием данного токенизатора. По умолчанию токенизатор использует неалфавитные ASCII-символы в качестве разделителей.
Аргументы
value— Входная строка. Строка или FixedString.tokenizer— Токенизатор для использования. Допустимые аргументы:default,ngramиnoop. Необязательный параметр, если не указан явно, по умолчанию равенdefault. const Stringngrams— Только актуально, если аргументtokenizerравенngram: Необязательный параметр, который определяет длину n-граммов. Если не установлен явно, по умолчанию равен3. UInt8.
Возвращаемое значение
- Результирующий массив токенов из входной строки. Массив.
Пример
С использованием настроек по умолчанию:
Результат:
С использованием токенизатора ngram с длиной ngram 3:
Результат: