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