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

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

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

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

  • Массив выбранных подстрок. 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.

Пример

Результат: