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