Родриго Жирао Серрао: TIL #131... Заметка
RSS Планета Python

Родриго Жирао Серрао: TIL #131 – Изменение регистра в поиске и замене

Функции поиска и замены в VS Code позволяют сопоставлять шаблоны на основе regex и ссылаться на группы при замене. Мощной функцией является возможность изменять регистр совпадающих групп с помощью специальных последовательностей. Последовательности включают \u для перевода первой буквы в верхний регистр, \U для перевода всей группы в верхний регистр, \l для перевода первой буквы в нижний регистр и \L для перевода всей группы в нижний регистр. Например, замена слова "all in one go" на \U$1 превращает его в "ALL IN ONE GO". В отличие от этого, функция Python re.sub, хотя и поддерживает динамические замены, не предлагает таких встроенных специальных последовательностей для работы с регистром. Чтобы добиться подобных результатов в Python, необходимо реализовать пользовательские функции, которые взаимодействуют с объектом сопоставленного текста. Эти функции Python, такие как all_upper и first_upper, имитируют поведение специальных последовательностей VS Code, программно изменяя регистр сопоставленной строки. Функция all_upper переводит всю найденную группу в верхний регистр, что соответствует \U в VS Code. Аналогично, функция first_upper переводит в заглавный регистр только начальный символ совпадения, что соответствует \u в VS Code. Модуль Python требует ручной реализации этих изменений регистра, в отличие от прямых специальных последовательностей, предоставляемых VS Code.
CdXz5zHNQW_24shRFpK1a.webp