Функция 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
It is 'Telegram Thursday' and I want to recommend you interesting channels.
Today there is a fresh channel, focusing on the Scottish aspect of European culture:
https://t.me/beautiful_scotland
Have a look and follow this channel! It has lots of original content.
#Scottish#TelegramThursday
@EuropeanTribalism
#Ethiopia aid worker tells of daily struggle to find water in land littered with cow skulls
A #Scottish aid worker who recently visited Ethiopia has told of the harrowing daily struggles people face there to get safe water. Ben Wilson of the Scottish Catholic International Aid Fund (#SCIAF), who visited the #African nation last June, told of landscapes devastated by drought and littered with the skulls of dead cattle.
It comes as the charity’s annual Wee Box appeal this Easter focuses on water, with Scots urged to give generously to fund taps and wells in some of the world’s poorest nations. SCIAF is also urging Keir Starmer to reverse his controversial move to slash international aid to 0.3 per cent of national income - the lowest level since 1999 - in order to boost defence spending.
Ben told the Sunday Mail: “Water poverty is still such a huge problem around the world, with hundreds of millions of people.........
https://www.dailyrecord.co.uk/news/scottish-news/ethiopia-aid-worker-tells-daily-36969445
Shovel Dance Collective — The Shovel Dance (American Dreams Records, 2024)
#country#avantfolk#irish#scottish#english#England#Ireland#Scotland#United_Kingdom
Shovel Dance — второй альбом лондонского коллектива Shovel Dance Collective, который занимается изучением и переосмыслением народных традиций Англии, Ирландии и Шотландии. Группа работает без единого лидера, подчеркивая таким образом дух коллективного творчества, присущий фольклорной культуре. В состав входят девять участников, которые в работе над альбомом использовали 25 инструментов, а вокальные партии исполнялись восемью из них.
Альбом опирается на музыкальные источники, датируемые XVII веком и более ранними периодами, органично соединяя их с современными влияниями. Так, в музыке коллектива угадываются отсылки ко многим артистам XX века: Скотту Уокеру, начавшему карьеру как поп-исполнитель в 60-х, но позже экспериментировавшему со звуком и формой; Swans, экспериментальному постпанк-коллективу из Нью-Йорка; Ширли Коллинз, британской фолк-певице и исследовательнице народной музыки; Берту Ллойду, исполнителю и собирателю английских народных песен. Эти цитаты подчёркивают стремление Shovel Dance Collective навести мосты между традиционной музыкой и современными звуковыми решениями, чтобы отразить актуальность фольклора не только через тексты, но и через звучание.
Альбом открывается композицией Abbots Bromley Horn Dance — переосмыслением музыки к древнему английскому праздничному танцу, традиционно исполняемому с оленьими рогами и минимальным аккомпанементом. Группа превращает его в сложное инструментальное произведение, достигающее крещендо, прежде чем перейти к песне The Worms Crept Out времен Первой мировой войны, посвященной размышлениям о смерти.
На протяжении всего альбома музыканты исследуют, как фольклор может отражать социальные и исторические проблемы, актуальные как в прошлом, так и в настоящем. Например, в треке The Four Loom Weaver это проявляется через рассказ о людях, потерявших работу во времена промышленной революции. Хоть с тех пор минуло много лет и мы давно живем в постиндустриальную эпоху, люди продолжают терять работу. Музыканты верят, что старые народные песни могут стать источником утешения и помочь справиться с несовершенствами жизни.
🔗AppleMusic | Spotify | YouTube | Deezer | TIDAL | Napster | Amazon | Bandcamp | Telegram