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

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

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

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

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

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

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

format(pattern, s1, s2, …​)

Форматирует строку pattern, подставляя значения s1, s2 и последующих аргументов вместо шаблонов в фигурных скобках {…​}. Чтобы вывести сами фигурные скобки, их необходимо экранировать: {{…​}}.

overlay(s, replace, offset[, length])

Заменяет часть байтовой строки s на строку replace, начиная с позиции offset (индексация с 1, отрицательное значение считает байты с конца строки). Необязательный параметр length указывает количество байт, которые нужно заменить в исходной строке s. Если length не задан, то по умолчанию считается, что длина заменяемого сегмента равна длине строки replace.

overlayUTF8(s, replace, offset[, length])

Аналогично overlay, но работает с символами UTF-8. Заменяет часть строки s на replace, начиная с позиции offset. Необязательный параметр length определяет длину заменяемого сегмента в символах UTF-8.

printf(format[, sub1, sub2, …​])

Форматирует строку format, подставляя значения sub1, sub2 и последующих аргументов вместо спецификаторов, начинающихся с символа %. Чтобы вывести сам символ %, его необходимо экранировать: %%.

regexpQuoteMeta(s)

Принимает строку s и добавляет обратную косую черту перед всеми символами, которые имеют служебное значение в регулярных выражениях: \0, \\, (, ), ^, $, ., [, ], ?, *, +, {, :, -.

replaceAll(source, pattern, replacement).

replace(source, pattern, replacement)

Заменяет все вхождения подстроки pattern в строке source на строку replacement.

replaceOne(source, pattern, replacement)

Заменяет первое вхождение подстроки pattern в строке source на строку replacement.

replaceRegexpAll(source, pattern, replacement)

REGEXP_REPLACE(source, pattern, replacement)

Аналогично replaceRegexpOne, но заменяет все вхождения подстрок, соответствующих регулярному выражению pattern.

replaceRegexpOne(source, pattern, replacement)

Заменяет первое вхождение подстроки, соответствующей регулярному выражению pattern (в синтаксисе re2), в строке source на строку replacement. В replacement могут использоваться подстановки \0-\9, где \1-\9 соответствуют группам захвата с первой по девятую , а \0 — всему совпадению.

translate(s, from, to)

Заменяет символы в строке s, используя прямое отображение символов, определенное строками from и to. Строки from и to должны быть константными ASCII-строками. Если длины from и to равны, то вхождение каждого символа из from заменяется соответствующим символом из to. Если from содержит больше символов, чем to, все вхождения символов в конце from, для которых нет соответствующего символа в to, удаляются из s. Символы вне ASCII в строке s не изменяются.

translateUTF8(string, from, to)

Аналогично translate, но предполагает, что строки s, from и to закодированы в UTF-8.

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

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