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

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

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

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

Синтаксис

Аргументы

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

Пример

Результат:

tokens

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

Аргументы

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

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

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

Пример

Результат: