Функция 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
#Influenza (flu) spreads easily, but prevention starts with you!
Practice these simple healthy habits to stay protected:
✔️Wash your hands regularly with soap under running water
✔️Cover your mouth and nose when coughing or sneezing
✔️Avoid close contact with sick individuals
✔️Clean and disinfect touched surfaces frequently
✔️Visit the nearest healthcare facility if you feel unwell
✔️Wear a face mask in crowded places
Protect your family. Protect your community.
#FluPrevention#HealthyLiving#NCDCNigeria
#Influenza is a highly contagious respiratory infection that can cause fever, cough, sore throat, body aches, and fatigue. It spreads easily through contact with coughs or sneezes of an infected persons.
Protect yourself and your loved ones by:
✔️ Getting the annual flu vaccine
✔️ Practicing good hand hygiene
✔️ Covering your mouth and nose when sneezing or coughing
✔️ Staying home if you’re unwell
Early prevention and care save lives!
#InfluenzaAwareness#StayHealthy#NCDCNigeria
Influenza spreads faster than you think, don’t let your guard down.
A simple cough, a handshake, or even touching a surface can expose you to the flu virus. Stay one step ahead by protecting yourself and those around you.
🛑 Practice good hygiene
😷Cough and sneeze into your elbow
🧼 Clean touched surfaces frequently
🏠 Visit the nearest healthcare facility if you feel unwell
Your actions can break the chain of transmission. Stay protected.
#FluAwareness#Influenza#StopTheSpread#NCDCNigeria
https://www.instagram.com/p/CAah59lJUpJt1SyIcjSI4F-KFIhgsSSFBw0d380/?igshid=1qvycu8wnl1ll
.
https://m.facebook.com/story.php?story_fbid=10224747250090873&id=1300855885
.
.
Assalamualaikum wr wb
.
.
Bapak/Ibu/teman2, jangan lupa besok siang, Kamis, 21 Mei 2020, pukul 13.00 - 14.00 WIB, saksikan siaran LIVE Saya dalam program SEIMAN yang ke-3 bersama dr. Ronny Hadyanto di akun @infokom.farmasi
Kami akan "Ngobrol Santai Soal ISPA", kupas tuntas masalah kesehatan tersering dan terbanyak di tengah masyarakat hingga saat ini, termasuk saat Pandemi Covid-19.
.
.
GRATIS dan BERHADIAH SOUVENIR MENARIK dari @inpharcom.bukukesehatan bagi peserta yang bertanya dan beruntung.
.
.
Syaratnya:
1. Follow 3 akun berikut: - @infokom.farmasi
- @inpharcom.bukukesehatan
- @nellysyukri
.
2. Repost flyer ini di akun medsos masing-masing.
.
3. Tag/mention minimal 3 akun temanmu.
.
.
Sebarkan yaaa..
.
.
IG @infokom.farmasi
Twitter @infokom.farmasi
FB 'Informasi Kefarmasian dan Kesehatan'
Email: [email protected] .
#infokefarmasian#infokesehatan
#inpharcom#bukukesehatan#bukufarmasi#gemacermat#cerdasgunakanobat#ispa#commoncold#batukpilek#influenza#flu#sinusitis#otitismedia#pneumonia#covid19#lawancovid19
Ngobrol Santai Soal ISPA
.
.
https://www.instagram.com/p/CAZMLb9JllK/?igshid=1hbv6y0kyd08y
.
.
https://m.facebook.com/story.php?story_fbid=130671945267435&substory_index=0&id=103148744686422
.
.
ISPA? Istri Setia Pendiam dan Amanah? Bukaaaannn...
Infeksi Saluran Pernapasan Atas?
Bukaaaan.....
Yang benar ISPA itu Infeksi Saluran Pernapasan Akut.
Trus ada apa dengan ISPA?
.
.
ISPA itu salah satu penyakit terbanyak dan tersering dijumpai di tengah masyarakat.
Masalahnya apa?
Masalahnya, ada banyak jenis ISPA. GAK SEMUANYA BUTUH DIOBATI. DAN GAK SEMUANYA BUTUH ANTIBIOTIK.
.
.
Salah satu gejala ISPA yang jadi momok belakangan ini yaitu Covid-19 yang disebabkan oleh virus SARS-COV2, yang sebenarnya gak ganas. Tapi penyebarannya yang cepat sekali meluas, hingga banyak korban yang tewas.
.
.
Mau tau lebih banyak tentang ISPA?
Yuk kita bahas tuntas dalam program SEIMAN yang ke-3 bersama dr. Ronny Hadyanto, dimoderatori langsung oleh Kak @nellysyukri
Live di IG @infokom.farmasi
Kamis, 21 Mei 2020
Pukul 13.00 - 14.00 WIB.
.
.
GRATIS dan BERHADIAH SOUVENIR MENARIK!!
Syaratnya:
1. Follow 3 akun berikut:
- @infokom.farmasi
- @inpharcom.bukukesehatan
- @nellysyukri
2. Repost flyer ini di akun medsos masing-masing.
3. Tag/mention minimal 3 akun temanmu.
.
.
Sebarkan yaaa..
.
.
IG @infokom.farmasi
Twitter @infokom.farmasi
FB 'Informasi Kefarmasian dan Kesehatan'
Email: [email protected]
.
#infokefarmasian#infokesehatan
#inpharcom#bukukesehatan#bukufarmasi#gemacermat#cerdasgunakanobat#ispa#commoncold#batukpilek#influenza#flu#sinusitis#otitismedia#pneumonia#covid19#lawancovid19