Функция 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
https://www.instagram.com/p/B5IMD8WJsuI/?igshid=o0ie40hj5j79
•
https://www.facebook.com/864416113651534/posts/2533997853360010/?substory_index=0
•
Sobat Sehat, Badan Kesehatan Dunia atau WHO menetapkan Pekan Kesadaran Antibiotik Sedunia atau World Antibiotic Awareness Week (WAAW) diperingati pada bulan November setiap tahunnya. Tahun ini jatuh pada tanggal 18 – 24 November.
.
Pekan ini bertujuan untuk meningkatkan kesadaran dan pemahaman masyarakat akan bahaya kekebalan (resistensi) terhadap antimikroba yang kini telah menjadi permasalahan serius di seluruh dunia, termasuk di Indonesia. Khususnya untuk antibiotik, yang seringkali digunakan secara tidak tepat dan bijak, sehingga memicu terjadinya resistensi bakteri.
.
Lantas apa bahaya resistensi antimikroba tersebut dan cara menghindarinya? Upaya apa yang dilakukan Kemenkes dalam meningkatkan kesadaran masyarakat akan pentingnya penggunaan antibiotik secara bijak? Kebijakan dan regulasi apa yang diambil Kemenkes untuk mengendalikan resistensi antimikroba khususnya antibiotik?
.
Simak #Sehatwicara mengenai "Gunakan Antibiotik dengan Bijak" bersama Dita Novianti, S.A, S.Si, MM, Apt (Direktur Pelayanan Kefarmasian, Kementerian Kesehatan RI).
.
Dengarkan pada Jumat, 22 November 2019, pukul 09.00-10.00 WIB hanya di aplikasi Radio Kesehatan (dapat diunduh di Play Store) atau di radiokesehatan.kemkes.go.id
.
Kamu bisa bertanya seputar topik melalui WA 0811 874 1919 atau mention Twitter/Instagram di @radiokesehatan.
.
@Kemenkes_RI@radiokesehatan
.
GeMa CerMat (Gerakan Masyarakat Cerdas Menggunakan Obat), Kemenkes RI
Fanpage FB: Cerdas Gunakan Obat
Twitter & IG: Cerdas Gunakan Obat
Telegram: t.me/cerdasgunakanobat, t.me/diskusiobat
.
#SRK#RadioKesehatan#talkshow#talkshowradio#infosehat#pekanpeduliantibiotiksedunia#pekanpeduliantibiotik#antibiotik#obat#bijakantibiotik#resistensiantibiotik
#antimicrobialresistance
#antibioticresistance
#worldantibioticawarenessweek2019
#WAAW2019
#gemacermat
#cerdasgunakanobat
# #KemenkesRI