Приведённая ниже документация сгенерирована из системной таблицы
system.functions.format
pattern значениями (строками, целыми числами и т. д.), перечисленными в аргументах, аналогично форматированию в Python.
Строка шаблона может содержать поля подстановки, заключённые в фигурные скобки {}.
Всё, что не заключено в скобки, считается буквальным текстом и копируется в выходную строку без изменений.
Буквальные символы фигурных скобок можно экранировать двойными скобками: {{ и }}.
Именами полей могут быть числа (начиная с нуля) или пустые значения (в этом случае им неявно присваиваются последовательно возрастающие номера).
Синтаксис
pattern— Строка форматирования, содержащая плейсхолдеры.Strings0[, s1, ...]— Одно или несколько значений для подстановки в шаблон.Any
String
Примеры
Нумерованные плейсхолдеры
Query
Response
Query
Response
overlay
input на другую строку replace, начиная с индекса offset (нумерация с 1).
Синтаксис
s— Входная строка.Stringreplace— Строка замены.const Stringoffset— Целочисленный типInt(нумерация с 1). Еслиoffsetотрицательный, отсчёт ведётся от конца строкиs.Intlength— Необязательно. Целочисленный типInt.lengthзадаёт длину фрагмента во входной строкеs, который нужно заменить. Еслиlengthне указана, количество байтов, удаляемых изs, равно длинеreplace; в противном случае удаляетсяlengthбайтов.Int
String
Примеры
Простая замена
Query
Response
Query
Response
overlayUTF8
s на другую строку replace, начиная с индекса offset, отсчитываемого от 1.
Предполагается, что строка содержит корректный текст в кодировке UTF-8.
Если это предположение нарушено, исключение не генерируется, а результат не определён.
Синтаксис
s— Входная строка.Stringreplace— Строка замены.const Stringoffset— Целочисленный типInt(нумерация начинается с 1). Еслиoffsetотрицательный, отсчёт ведётся от конца входной строкиs.(U)Int*length— Необязательный параметр. Задаёт длину фрагмента входной строкиs, который нужно заменить. Еслиlengthне указан, количество символов, удаляемых изs, равно длинеreplace; в противном случае удаляетсяlengthсимволов.(U)Int*
String
Примеры
Замена UTF-8
Query
Response
printf
printf форматирует заданную строку значениями (строками, целыми числами, числами с плавающей точкой и т. д.), перечисленными в аргументах, аналогично функции printf в C++.
Строка формата может содержать спецификаторы формата, начинающиеся с символа %.
Всё, что не является % и следующим за ним спецификатором формата, считается литеральным текстом и копируется в результат как есть.
Литеральный символ % можно экранировать с помощью %%.
Строка формата может быть как константой, так и выражением столбца, что позволяет использовать разные шаблоны формата для каждой строки.
Синтаксис
format— Строка формата со спецификаторами%.Stringsub1, sub2, ...— Необязательный параметр. Одно или несколько значений для подстановки в строку формата.Any
String
Примеры
Форматирование в стиле C++
Query
Response
regexpQuoteMeta
\0, \\, |, (, ), ^, $, ., [, ], ?, *, +, {, :, -.
Эта реализация немного отличается от re2::RE2::QuoteMeta.
Нулевой байт экранируется как \0 вместо \x00, при этом экранируются только необходимые символы.
Синтаксис
s— Входная строка, содержащая символы, которые нужно экранировать в регулярном выражении.String
String
Примеры
Экранирование специальных символов регулярного выражения
Query
Response
replaceAll
pattern в строке haystack на строку replacement.
Синтаксис
replace
Аргументы
haystack— Входная строка, в которой выполняется поиск.Stringpattern— Шаблон регулярного выражения, который нужно найти и заменить.const Stringreplacement— Строка, которой заменяется найденная подстрока.const String
String
Примеры
Заменить все вхождения
Query
Response
replaceOne
pattern в строке haystack на строку replacement.
Синтаксис
haystack— Входная строка, в которой выполняется поиск.Stringpattern— Шаблон регулярного выражения, который нужно найти и заменить.const Stringreplacement— Строка, на которую заменяется найденный фрагмент.const String
String
Примеры
Замена первого вхождения
Query
Response
replaceRegexpAll
replaceRegexpOne, но заменяет все вхождения шаблона регулярного выражения.
В качестве исключения: если регулярное выражение сработало на пустой подстроке, замена выполняется не более одного раза.
Синтаксис
REGEXP_REPLACE
Аргументы
haystack— Входная строка, в которой выполняется поиск.Stringpattern— Шаблон регулярного выражения, который нужно найти.const Stringreplacement— Строка, которой заменяется шаблон регулярного выражения; может содержать подстановки.const String
String
Примеры
Заменить все символы на удвоенные
Query
Response
Query
Response
replaceRegexpOne
haystack, соответствующее шаблону регулярного выражения pattern (в синтаксисе re2), на строку replacement.
replacement может содержать подстановки \0-\9.
Подстановки \1-\9 соответствуют 1-й–9-й захватывающим группам (подсовпадениям), а подстановка \0 — всему совпадению.
Чтобы использовать буквальный символ \ в строках pattern или replacement, экранируйте его с помощью \.
Также имейте в виду, что строковые литералы требуют дополнительного экранирования.
Синтаксис
haystack— Входная строка для поиска.Stringpattern— Шаблон регулярного выражения для поиска.const Stringreplacement— Строка, на которую заменяется найденное совпадение; может содержать подстановки.const String
String
Примеры
Преобразование дат ISO в американский формат
Query
Response
Query
Response
translate
s на основе посимвольного соответствия, заданного строками from и to.
from и to должны быть константными ASCII-строками.
Если from и to имеют одинаковую длину, каждое вхождение первого символа из from в s заменяется первым символом из to, каждого второго символа из from — вторым символом из to и так далее.
Если from содержит больше символов, чем to, все вхождения символов в конце from, для которых нет соответствующего символа в to, удаляются из s.
Символы не из ASCII в s функцией не изменяются.
Синтаксис
s— Входная строка для преобразования.Stringfrom— Константная строка ASCII, содержащая символы для замены.const Stringto— Константная строка ASCII, содержащая символы-замены.const String
String
Примеры
Сопоставление символов
Query
Response
Query
Response
translateUTF8
translate, но предполагается, что s, from и to — строки в кодировке UTF-8.
Синтаксис
s— входная UTF-8-строка для преобразования.Stringfrom— константная UTF-8-строка, содержащая символы для замены.const Stringto— константная UTF-8-строка, содержащая символы, на которые выполняется замена.const String
String. String
Примеры
Преобразование символов UTF-8
Query
Response