Функции для разделения строк
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
символов.
Синтаксис
Аргументы
string
— Строка. Строка или FixedString.ngramsize
— Размер n-граммы. UInt.
Возвращаемые значения
Пример
Результат:
tokens
Разделяет строку на токены, используя не алфавитные символы ASCII в качестве разделителей.
Аргументы
input_string
— Любой набор байтов, представленный как объект типа Строка.
Возвращаемое значение
- Результирующий массив токенов из входной строки. Массив.
Пример
Результат: