Функция 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
Wenn draußen die Kälte🥶 kommt, bringen wir den Sommer☀️ auf die Leinwand📺: das Komödiendrama „Erster Sommer” wird am 19. November um 19:00 Uhr in russischer Sprache mit englischen Untertiteln gezeigt.
🎞️ Der 15-jährige Sascha lebt in einer Kleinstadt an der Wolga, und dieser Sommer wird sein Leben verändern. Gemeinsam mit seinen Freunden startet er ein kleines Geschäft, um sich eine Sony PlayStation🎮 leisten zu können. Das Haus des Nachbarmädchens wird plötzlich zum Mittelpunkt seiner Aufmerksamkeit, und auf der Sommerdisco💃🏻 kommt es zur ersten handfesten Auseinandersetzung. Während er erwachsen wird, lernt Sascha den Wert anderer Leben kennen, erlebt Schmerz und Verlust und steht vor Entscheidungen, die alles andere als kindlich sind.
🗣️Der Film wird vom Produzenten Denis Kovalevsky vorgestellt.
FSK: 18+
📲Anmeldung ist erforderlich.
#kino#berlinevents#drama#komödie#sommer#film
Wenn draußen die Kälte🥶 kommt, bringen wir den Sommer☀️ auf die Leinwand📺: das Komödiendrama „Erster Sommer” wird am 19. November um 19:00 Uhr in russischer Sprache mit englischen Untertiteln gezeigt.
🎞️ Der 15-jährige Sascha lebt in einer Kleinstadt an der Wolga, und dieser Sommer wird sein Leben verändern. Gemeinsam mit seinen Freunden startet er ein kleines Geschäft, um sich eine Sony PlayStation🎮 leisten zu können. Das Haus des Nachbarmädchens wird plötzlich zum Mittelpunkt seiner Aufmerksamkeit, und auf der Sommerdisco💃🏻 kommt es zur ersten handfesten Auseinandersetzung. Während er erwachsen wird, lernt Sascha den Wert anderer Leben kennen, erlebt Schmerz und Verlust und steht vor Entscheidungen, die alles andere als kindlich sind.
🗣️Der Film wird vom Produzenten Denis Kovalevsky vorgestellt.
FSK: 18+
📲Anmeldung ist erforderlich.
#kino#berlinevents#drama#komödie#sommer#film
Am 20. Januar um 19:00 Uhr wird die Familienkomödie „Das Feld der Wunder“ in russischer Sprache gezeigt.📽️
🌞 Jeden Sommer versammelt sich eine Gruppe von Kindern in ihrem geheimen Versteck mitten zwischen den hohen Maisstängeln eines alten Ferienorts. Es kursiert die Legende von den Schätzen einer Fürstin, die vor Napoleon geflohen ist, und der Traum vom Abenteuer wird Wirklichkeit, als die neue Schülerin Katja auftaucht: ihr Vater, ein Geschäftsmann, plant, das Feld zu kaufen, um dort einen Baumarkt zu errichten. Die Kinder schließen sich zusammen, um ihren heiligen Ort zu verteidigen.
Meldet euch an und kommt ins Filmtheater im Russischen Haus vorbei!🫶🏻
#kino#komödie#familienfilm#sommer#jugend#kindern
DasKrimidrama „Der Sommer kommt“, das bei großen Filmfestivals mehrmalsausgezeichnet wurde, wird am 29. Januar um 19:00 Uhr im Russischen Haus in Berlin gezeigt!
🎬 Der Film erzählt die Geschichte eines jungen Mannes namens Nikita, der aus der Provinz nach Moskau kommt. Er mietet ein Zimmer, lernt seine Mitbewohnerin kennen und verstrickt sich in eine komplizierte Beziehung. Durch einen Freund erfährt er von einem reichen Typen namens Dan. Der Film greift Motive aus der Welt des Verbrechens, moralische Entscheidungen und deren Auswirkungen auf das Leben der Protagonisten in der Großstadt auf. Die Geschichte spielt vor dem Hintergrund sozialer Unterschiede und innerer Widersprüche, die für das moderne Stadtleben charakteristisch sind.
🎞️Die Vorführung findet im Rahmen des Internationalen Filmfestivals ARCTIC OPEN in russischer Sprache mit englischen Untertiteln statt.
🖇️ FSK: 18+
📲Anmeldung
#filmfestival#kino#drama#krimi#sommer#berlinkino
Am 20. Januar um 19:00 Uhr wird die Familienkomödie „Das Feld der Wunder“ in russischer Sprache gezeigt.📽️
🌞 Jeden Sommer versammelt sich eine Gruppe von Kindern in ihrem geheimen Versteck mitten zwischen den hohen Maisstängeln eines alten Ferienorts. Es kursiert die Legende von den Schätzen einer Fürstin, die vor Napoleon geflohen ist, und der Traum vom Abenteuer wird Wirklichkeit, als die neue Schülerin Katja auftaucht: ihr Vater, ein Geschäftsmann, plant, das Feld zu kaufen, um dort einen Baumarkt zu errichten. Die Kinder schließen sich zusammen, um ihren heiligen Ort zu verteidigen.
Meldet euch an und kommt ins Filmtheater im Russischen Haus vorbei!🫶🏻
#kino#komödie#familienfilm#sommer#jugend#kindern