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

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

splitByChar

Разбивает строку на подстроки, разделенные заданным символом. Использует константную строку separator, состоящую ровно из одного символа. Возвращает массив выбранных подстрок. Пустые подстроки могут быть выбраны, если разделитель находится в начале или в конце строки или если имеются несколько подряд идущих разделителей.

Синтаксис

Аргументы

  • separator — Разделитель, который должен состоять ровно из одного символа. String.
  • s — Строка для разбивки. String.
  • max_substrings — Необязательный параметр Int64, по умолчанию равный 0. Если max_substrings > 0, возвращаемый массив будет содержать не более max_substrings подстрок, иначе функция вернет столько подстрок, сколько возможно.

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

  • Массив выбранных подстрок. Array(String).

Пустые подстроки могут быть выбраны, когда:

  • Разделитель находится в начале или в конце строки;
  • Имеется несколько подряд идущих разделителей;
  • Исходная строка 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, иначе функция вернет столько подстрок, сколько возможно.

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

  • Массив выбранных подстрок. Array(String).

Пустые подстроки могут быть выбраны, когда:

  • Непустимый разделитель находится в начале или в конце строки;
  • Имеется несколько подряд идущих непустых разделителей;
  • Исходная строка 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, иначе функция вернет столько подстрок, сколько возможно.

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

  • Массив выбранных подстрок. Array(String).

Пустые подстроки могут быть выбраны, когда:

  • Непустимое совпадение регулярного выражения находится в начале или в конце строки;
  • Имеется несколько подряд идущих непустых совпадений регулярного выражения;
  • Исходная строка s пуста, в то время как регулярное выражение не пусто.
примечание

Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включается ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.

Пример

Результат:

Результат:

splitByWhitespace

Разбивает строку на подстроки, разделенные пробельными символами. Возвращает массив выбранных подстрок.

Синтаксис

Аргументы

  • s — Строка для разбивки. String.
  • max_substrings — Необязательный параметр Int64, по умолчанию равный 0. Когда max_substrings > 0, возвращенные подстроки будут не более чем max_substrings, иначе функция вернет столько подстрок, сколько возможно.

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

  • Массив выбранных подстрок. Array(String).
примечание

Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включается ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.

Пример

Результат:

splitByNonAlpha

Разбивает строку на подстроки, разделенные пробельными и пунктуационными символами. Возвращает массив выбранных подстрок.

Синтаксис

Аргументы

  • s — Строка для разбивки. String.
  • max_substrings — Необязательный параметр Int64, по умолчанию равный 0. Когда max_substrings > 0, возвращенные подстроки будут не более чем max_substrings, иначе функция вернет столько подстрок, сколько возможно.

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

  • Массив выбранных подстрок. Array(String).
примечание

Настройка 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, иначе функция вернет столько подстрок, сколько возможно.

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

  • Массив выбранных подстрок. Array(String).
примечание

Настройка splitby_max_substrings_includes_remaining_string (по умолчанию: 0) управляет тем, включается ли оставшаяся строка в последний элемент результирующего массива, когда аргумент max_substrings > 0.

Пример

extractAllGroups

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

Синтаксис

Аргументы

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

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

Пример

Результат:

ngrams

Разбивает строку в кодировке UTF-8 на n-граммы из ngramsize символов.

Синтаксис

Аргументы

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

Пример

Результат:

tokens

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

Аргументы

  • input_string — Любой набор байтов, представленный в виде объекта типа String.

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

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

Пример

Результат: