Функции разбиения и слияния строк и массивов

Функции разбиения и слияния строк и массивов в RQL предназначены для манипуляции текстовыми данными и коллекциями. Эти функции позволяют разделять строки на подстроки или элементы массива с использованием различных критериев, таких как фиксированные символы, строки, регулярные выражения или типы символов. Также они обеспечивают возможность объединения элементов массива в единую строку с заданным разделителем.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функции разбиения и слияния строк и массивов
Функция Описание

alphaTokens(s[, max_substrings])
splitByAlpha(s[, max_substrings])

Извлекает из строки s все непрерывные последовательности латинских букв (a-z, A-Z) и возвращает их в виде массива. Параметр max_substrings — необязательное максимальное количество возвращаемых подстрок. Если значение больше 0, возвращается не более указанного количества подстрок, иначе возвращаются все найденные подстроки. Значение по умолчанию — 0.

arrayStringConcat(arr[, separator])
array_to_string(arr[, separator])

Объединяет все элементы массива arr в одну строку. Перед объединением каждый элемент массива преобразуется в строковое представление. Параметр separator — необязательная строка-разделитель, вставляемая между соседними элементами (по умолчанию — пустая строка).

extractAllGroupsVertical(s, regexp)
extractAllGroups(s, regexp)

Ищет все совпадения регулярного выражения regexp в строке s и возвращает массив массивов, где каждый внутренний массив содержит значения групп захвата для одного найденного совпадения. Если совпадения не найдены, возвращается пустой массив. Параметр regexp — регулярное выражение, содержащее одну или несколько групп захвата.

ngrams(s, n)

Разбивает строку s в кодировке UTF-8 на n-граммы (последовательности из n символов) и возвращает их в виде массива n-грамм. Параметр n — целое число, задающее длину каждой n-граммы.

splitByChar(separator, s[, max_substrings])

Разбивает строку s по односимвольному разделителю separator на массив подстрок. Параметр max_substrings — необязательное максимальное количество возвращаемых подстрок. Если значение больше 0, возвращается не более указанного количества подстрок, иначе возвращаются все найденные подстроки. Значение по умолчанию — 0.

Пустые подстроки могут появляться, если разделитель встречается в начале или в конце строки, либо если есть несколько последовательных разделителей.

splitByNonAlpha(s[, max_substrings])

Разбивает строку s по пробельным символам и знакам пунктуации на массив подстрок. Параметр max_substrings — необязательное максимальное количество возвращаемых подстрок. Если значение больше 0, возвращается не более указанного количества подстрок, иначе возвращаются все найденные подстроки. Значение по умолчанию — 0.

splitByRegexp(regexp, s[, max_substrings])

Разбивает строку s по совпадениям регулярного выражения regexp на массив подстрок. Параметр max_substrings — необязательное максимальное количество возвращаемых подстрок. Если значение больше 0, возвращается не более указанного количества подстрок, иначе возвращаются все найденные подстроки. Значение по умолчанию — 0.

Если переданное регулярное выражение пустое, строка будет разбита на массив отдельных символов. Пустые подстроки могут появляться, если непустое совпадение регулярного выражения находится в начале или конце строки, либо если есть несколько последовательных непустых совпадений регулярного выражения.

splitByString(separator, s[, max_substrings])

Разбивает строку s по строке-разделителю separator, состоящей из нескольких символов, на массив подстрок. Параметр max_substrings — необязательное максимальное количество возвращаемых подстрок. Если значение больше 0, возвращается не более указанного количества подстрок, иначе возвращаются все найденные подстроки. Значение по умолчанию — 0.

Если строка separator пуста, строка s будет разбита на массив отдельных символов. Пустые подстроки могут появляться, если непустой разделитель встречается в начале или в конце строки, либо если есть несколько последовательных непустых разделителей.

splitByWhitespace(s[, max_substrings])

Разбивает строку s, используя пробельные символы в качестве разделителей, на массив подстрок. Параметр max_substrings — необязательное максимальное количество возвращаемых подстрок. Если значение больше 0, возвращается не более указанного количества подстрок, иначе возвращаются все найденные подстроки. Значение по умолчанию — 0.

tokens(s)
tokens(s, 'splitByNonAlpha')

Разбивает строку s на токены, используя в качестве разделителей любые небуквенно-цифровые ASCII-символы аналогично функции splitByNonAlpha(s[, max_substrings]). Возвращает массив токенов, полученный из входной строки.

tokens(s, 'splitByString'[, separators])

Разбивает строку s на токены аналогично функции splitByString(separator, s[, max_substrings]), используя строки-разделители из массива separators. Возвращает массив токенов, полученный из входной строки. Параметр separators — необязательный массив строк-разделителей. Каждый разделитель может состоять из одного или нескольких символов. Если параметр не указан, по умолчанию используется один пробел [' '].

Если один разделитель является частью другого, рекомендуется передавать их в порядке убывания длины, чтобы более длинные разделители обрабатывались раньше более коротких.

tokens(s, 'asciiCJK')

Разбивает строку s на токены, используя правила границ слов Unicode (аналогично UAX #29). ASCII-буквенно-цифровые символы и символы подчеркивания образуют токены с соединителями (: для букв, . и ' для символов одного типа). Символы Unicode вне ASCII становятся односимвольными токенами. Возвращает массив токенов, полученный из входной строки.

tokens(s, 'ngrams'[, n])

Разбивает строку s на массив n-грамм одинаковой длины аналогично функции ngrams(s, n). Параметр n — необязательная длина n-граммы в символах. Допустимые значения — от 1 до 8. Если параметр не указан, по умолчанию используется значение 3.

tokens(s, 'sparseGrams'[, min_length, max_length[, min_cutoff_length]])

Разбивает строку s на массив n-грамм переменной длины. Параметр min_length — необязательная минимальная длина n-граммы (по умолчанию — 3). Параметр max_length — необязательная максимальная длина n-граммы (по умолчанию — 100). Если параметр min_cutoff_length указан, n-граммы меньшей длины не включаются в результат.

tokens(s, 'array')

Возвращает исходную строку как один токен. Не выполняет токенизацию строки s.

Была ли полезна эта страница?

Обратная связь