Функции для разбивки строк
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:
Результат: