Функция sub в regex может принимать функцию в качестве аргумента repl.
📄 Из документации:
If repl is a function, it is called for every non-overlapping occurrence of pattern. The function takes a single match object argument, and returns the replacement string.
То есть для каждого совпадения будет вызвана функция для вычисления замены вместо замены на одну и ту же строку для всех совпадений.
Иными словами, для замены разных совпадений на разные строки не потребуется запускать re.sub() много раз для каждой строки замены. Достаточно определить функцию, которая вернёт строку для каждого из совпадений.
Описание слишком запутанное🤔, давайте лучше рассмотрим на простом примере:
Создаем карту замены. То есть какие строки на какие требуется менять.
remap = {
'раз': '1',
'два': '2',
'три': '3',
'четыре': '4',
'пять': '5',
}
Пишем функцию поиска строки для замены. Единственным аргументом будет объект re.Match.
Используя данные этого объекта мы вычисляем замену on-the-fly!
def get_str(match: re.Match):
word = match.group(1)
return remap.get(word.lower()) or word
Пример текста.
text = '''Раз Два Три Четыре Пять
Вместе будем мы считать
Пять Четыре Три Два Раз
Мы считать научим вас
'''
Теперь запускаем re.sub и вместо строки замены (repl) подаём имя функции.
(Данный паттерн ищет отдельные слова в тексте)
>>> print(re.sub(r'(\w+)', get_str, text))
1 2 3 4 5
Вместе будем мы считать
5 4 3 2 1
Мы считать научим вас
Думаю, достаточно наглядно 🤓
#libs#regex
Переводчики-редакторы со знанием иностранных языков
#удаленно#вакансия#crypto#tango
Katz Technologies LLC создаёт WEB3-экосистему (криптокошелёк, DEX, Memepad, Explorer) и ищем профессионального переводчика-редактора для проверки ИИ-переводов сайта и долгосрочного сотрудничества.
Не важны дипломы и громкие компании. Главное - чувство языка, ответственности и понимание crypto-контекста. Вы сразу видите искажения смысла, ошибки в терминах и роботизированный перевод, умеете быстро и точно доводить машинный текст до профессионального уровня. Важно чувствовать тон продукта, которому пользователь доверит деньги.
Мы предлагаем:
- Долгосрочный проект и сильный кейс в портфолио
- Удалённую работу и гибкий график
- Возможность влиять на продукт с нуля
- Бонусы за результат
Задачи:
- Проверка ИИ-перевода сайта (10+ страниц, ~5 000 знаков каждая)
- Контроль смысла и терминологии (Tier-1 приоритет)
- Исправление ошибок, кальки и неестественных формулировок
- Работа с готовым переводом (без переписывания с нуля)
Языки (один или несколько):
#German, #Swedish, #Polish, #Dutch, #French, #Turkish, #Spanish, #Portuguese
Обязательно:
- Уровень: C1+
- Умение быстро вносить точечные правки
Приветствуется:
Опыт в IT / crypto / fintech
Как откликнуться:
В ТГ: https://t.me/shillbert
Укажите язык(и), опыт и примеры проектов (если есть).
⏺Откликнуться: https://t.me/shillbert
➖➖➖➖➖➖➖➖➖➖➖
🪩 Откликнуться быстрее других
➖➖➖➖➖➖➖➖➖➖➖