Перейти к основному содержимому
Перейти к основному содержимому

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

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

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

Синтаксис

Аргументы

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

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

Пример

Результат:

ngrams

Deprecated feature

Разбивает строку UTF-8 на n-граммы размером ngramsize символов. Эта функция устарела. Рекомендуется использовать tokens с токенизатором ngram. Функция может быть удалена в какой-то момент в будущем.

Синтаксис

Аргументы

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

Пример

Результат:

tokens

Разбивает строку на токены с использованием данного токенизатора. По умолчанию токенизатор использует неалфавитные ASCII-символы в качестве разделителей.

Аргументы

  • value — Входная строка. Строка или FixedString.
  • tokenizer — Токенизатор для использования. Допустимые аргументы: default, ngram и noop. Необязательный параметр, если не указан явно, по умолчанию равен default. const String
  • ngrams — Только актуально, если аргумент tokenizer равен ngram: Необязательный параметр, который определяет длину n-граммов. Если не установлен явно, по умолчанию равен 3. UInt8.

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

  • Результирующий массив токенов из входной строки. Массив.

Пример

С использованием настроек по умолчанию:

Результат:

С использованием токенизатора ngram с длиной ngram 3:

Результат: