Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример).
Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать?
В Django по умолчанию есть готовая функция slugify для таких случаев.
Но я её никогда не использую. Почему? Потому что её недостаточно!
Приведём пример
>>> from django.utils.text import slugify
>>> slugify('This is a Title')
'this-is-a-title'
Пока всё отлично
>>> slugify('This is a "Title!"')
'this-is-a-title'
Спец символы удалились, всё хорошо.
>>> slugify('Это заголовок статьи')
''
Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить
>>> slugify('Это заголовок статьи', allow_unicode=True)
'это-заголовок-статьи'
Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте.
Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою.
Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку:
🔸1. Исходный текст:
>>> text = 'Мой заголовок №10 😁!'
Взял специально посложней со специальными символами.
🔸2. Транслит
Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги.
from unidecode import unidecode
>>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山")
'N S (r) u P 1/4 Yue Shan'
Очень крутая библиотека, советую👍
В нашем случае получаем такое преобразование:
>>> text = unidecode(text)
>>> print(text)
'Moi zagolovok No. 10 !'
Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы.
А еще наш код уже поддерживает любой язык, будь то хинди или корейский.
🔸4. Фильтр символов
Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона.
>>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text)
>>> print(text)
'Moi_zagolovok_No_10_'
Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_".
🔸5. Slugify
Осталось удалить лишние символы по краям и сделать нижний регистр
>>> text = text.strip('_').lower()
>>> print(text)
'moi_zagolovok_no_10'
Получаем отличный slug! 😎
🌎 Полный код в виде функции.
______________
PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию.
#libs#tricks#django
🇺🇿Ведущие специалисты Университетской Клиники AKFA Medline едут в Карши!
☝🏻Только 24 сентября в городе Карши будут проводиться обследования пациентов, страдающих следующими заболеваниями:
➡️Невралгия у детей, мигрень, боли в различных локализациях.
➡️миома, опухоли яичников, бесплодие
➡️артриты, повреждения менисков, заболевания суставов
🌎Все наши специалисты имеют международный опыт и владеют безопасными методами терапевтического и хирургического лечения. Также выполняют уникальные операции, которые выполняются «БЕЗ РАЗРЕЗОВ»:
⭐️ Ташматова Севара — детский невролог.
⭐️ Куралина Елена – врач-гинеколог.
⭐️Абдуллаев Махсур – врач-ортопед-травматолог.
🤗Ждем всех в порядке живой очереди по адресу:
📍Кашкадарьинская область, Медицинский центр Джавахир.
Адрес: город Карши, Хантепинский район, улица Сохибкор, 121.
Ориентир: напротив стадиона «Геолог».
📲Для получения дополнительной информации обращайтесь по телефонам:
+99855 403-06-66
+99855 402-06-66
#akfamedline#медицинскаяпомощь#иностранныепациенты
🇺🇿Ведущие специалисты Университетской Клиники AKFA Medline едут в Карши!
☝🏻Только 24 сентября в городе Карши будут проводиться обследования пациентов, страдающих следующими заболеваниями:
➡️Невралгия у детей, мигрень, боли в различных локализациях.
➡️миома, опухоли яичников, бесплодие
➡️артриты, повреждения менисков, заболевания суставов
🌎Все наши специалисты имеют международный опыт и владеют безопасными методами терапевтического и хирургического лечения. Также выполняют уникальные операции, которые выполняются «БЕЗ РАЗРЕЗОВ»:
⭐️ Ташматова Севара — детский невролог.
⭐️ Куралина Елена – врач-гинеколог.
⭐️Абдуллаев Махсур – врач-ортопед-травматолог.
🤗Ждем всех в порядке живой очереди по адресу:
📍Кашкадарьинская область, Медицинский центр Джавахир.
Адрес: город Карши, Хантепинский район, улица Сохибкор, 121.
Ориентир: напротив стадиона «Геолог».
📲Для получения дополнительной информации обращайтесь по телефонам:
+99855 403-06-66
+99855 402-06-66
#akfamedline#медицинскаяпомощь#иностранныепациенты
🙏🏻Бесплатная медицинская помощь в г.Наманган!
❤️Мы нацелены на проведение различных благотворительных акций для жителей нашей Республики и наша следущая локация - Наманган!
👋Только 17 августа ведущий детский кардиолог AKFA Medline University Hospital проведет бесплатные консультации для детей с врожденными пороками сердца:
✅Зокиров Нодир - детский кардиолог, эхокардиографист
✋🏻Консультации продлятся всего один день!
🆘Если у вас есть подозрения, что у вашего ребенка имеются патологии сердца, не откладывайте это важное решение!
Заботьтесь о будущем своего ребенка и дайте ему шанс на здоровую жизнь. Мы ждем вас на бесплатных консультациях!
📍 г. Наманган, ул. Торакурган, 205
Ориентир: Мост Заркента
«Республиканский специализированный научно-практический медицинский центр кардиологии, Наманганский филиал»
Для подробной информации: +998913439883
#akfamedline#yordam#xayriya#jizzax
🙏🏻Namangan aholisi uchun bepul tibbiy yordam!
❤️Biz respublikamiz aholisi uchun turli xayriya aksiyalarini o'tkazishni o'zimizga maqsad qilganmiz va bu safar "Har bir yurak mehrga loyiq" nomli aksiyamiz jamoasi Namanganga yo'l oladi.
👋Faqat 17 avgust kuni AKFA Medline Universitet Klinikamizning yetakchi bolalar kardiologi tug'ma yurak nuqsoni bo'lgan bolalar uchun bepul ko'riklar amalga oshiradi:
✅Zokirov Nodir - bolalar kardiologi, exokardiografist
✋🏻Ko'rik faqat bir kun davom etadi!
🆘Terapevtik va jarrohlik davolash bo'yicha xalqaro tajribaga ega yetakchi mutaxassisimiz ko'rigiga jonli navbat asosida, quyidagi manzil orqali tashrif buyuring:
📍Manzil: Namangan shahri, To'raqo'rg'on ko'chasi 205-uy
Mo'ljal: Zarkent most hududi
"Respublika ixtisoslashtirilgan kardiologiya ilmiy amaliy tibbiyot markazi, Namangan filiali"
📲Murojaat uchun: +998913439883
#akfamedline#yordam#xayriya#jizzax
🚨TO‘G‘RI ICHAK SARATONI BO‘YICHA BEPUL OPERATSIYA! 🚨
⚠️ Siz yoki yaqinlaringizda to‘g‘ri ichak saratoni aniqlangan bo‘lsa, tushkunlikka tushmang!
Mamnuniyat bilan e'lon qilamizki, 3-4-5 fevral kunlari AKFA Medline Universitet Klinikasiga Sankt-Peterburgning yetakchi mutaxassisi, Professor, onkolog jarroh Aleksey Mixaylovich Karachun tashrif buyuradi va to'g'ri ichak saratoni bilan hastalangan bemorlarimiz uchun bepul operatsiyalar amalga oshiradi!
🔬Shuningdek, diagnostika va ko'riklar ham mutlaqo bepul bo'lib o'tadi!
🔝 Bu siz uchun nima degani?
📌Yuqori malakali yordam: Xalqaro tajribaga ega yetakchi mutaxassis.
📌Barcha xarajatlar qoplanadi: Operatsiya va diagnostika mutlaqo BEPUL — barcha xarajatlar bizning homiylarimiz tomonidan qoplanadi!
📌Samarali davo: Mamlakatdan chiqmagan holda sifatli davolanish imkoniyatini qo‘ldan boy bermang.
💬 Hoziroq biz bilan bog‘laning: 📞 Batafsil ma'lumot olish uchun 1141 yoki +998 71 2033003 raqamlariga qo‘ng‘iroq qiling.
🙏Bu muhim yangilikni ulashing — ehtimol, sizning do‘stlaringiz yoki tanishlaringiz yordamga muhtoj.
#akfamedline#amuh#aksiya#saraton#togriichaksaratoni
🚨TO‘G‘RI ICHAK SARATONI BO‘YICHA BEPUL OPERATSIYA! 🚨
⚠️ Siz yoki yaqinlaringizda to‘g‘ri ichak saratoni aniqlangan bo‘lsa, tushkunlikka tushmang!
Mamnuniyat bilan e'lon qilamizki, AKFA Medline Universitet Klinikasiga muntazam ravishda tashrif buyuradigan Sankt-Peterburgning yetakchi mutaxassisi, Professor, onkolog jarroh Aleksey Mixaylovich Karachun tashrif buyuradi va to'g'ri ichak saratoni bilan hastalangan bemorlarimiz uchun bepul operatsiyalar amalga oshiradi!
🔬Shuningdek, diagnostika va ko'riklar ham mutlaqo bepul bo'lib o'tadi!
🔝 Bu siz uchun nima degani?
📌Yuqori malakali yordam: Xalqaro tajribaga ega yetakchi mutaxassis.
📌Barcha xarajatlar qoplanadi: Operatsiya va diagnostika mutlaqo BEPUL — barcha xarajatlar bizning homiylarimiz tomonidan qoplanadi!
📌Samarali davo: Mamlakatdan chiqmagan holda sifatli davolanish imkoniyatini qo‘ldan boy bermang.
💬 Hoziroq biz bilan bog‘laning: 📞 Batafsil ma'lumot olish uchun 1141 yoki +998 71 2033003 raqamlariga qo‘ng‘iroq qiling.
🙏Bu muhim yangilikni ulashing — ehtimol, sizning do‘stlaringiz yoki tanishlaringiz yordamga muhtoj.
#akfamedline#amuh#aksiya#saraton#togriichaksaratoni
🚨TO‘G‘RI ICHAK SARATONI BO‘YICHA BEPUL OPERATSIYA! 🚨
⚠️ Siz yoki yaqinlaringizda to‘g‘ri ichak saratoni aniqlangan bo‘lsa, tushkunlikka tushmang!
Mamnuniyat bilan e'lon qilamizki, AKFA Medline Universitet Klinikasiga muntazam ravishda tashrif buyuradigan Sankt-Peterburgning yetakchi mutaxassisi, Professor, onkolog jarroh Aleksey Mixaylovich Karachun tashrif buyuradi va to'g'ri ichak saratoni bilan hastalangan bemorlarimiz uchun bepul operatsiyalar amalga oshiradi!
🔬Shuningdek, diagnostika va ko'riklar ham mutlaqo bepul bo'lib o'tadi!
🔝 Bu siz uchun nima degani?
📌Yuqori malakali yordam: Xalqaro tajribaga ega yetakchi mutaxassis.
📌Barcha xarajatlar qoplanadi: Operatsiya va diagnostika mutlaqo BEPUL — barcha xarajatlar bizning homiylarimiz tomonidan qoplanadi!
📌Samarali davo: Mamlakatdan chiqmagan holda sifatli davolanish imkoniyatini qo‘ldan boy bermang.
💬 Hoziroq biz bilan bog‘laning: 📞 Batafsil ma'lumot olish uchun 1141 yoki +998 71 2033003 raqamlariga qo‘ng‘iroq qiling.
🙏Bu muhim yangilikni ulashing — ehtimol, sizning do‘stlaringiz yoki tanishlaringiz yordamga muhtoj.
#akfamedline#amuh#aksiya#saraton#togriichaksaratoni
❤️Chirchiq shahrida jajji yuraklarga yordam beramiz!
🆘Agar tug'ma yurak nuqsoni bilan tug'ilgan bolalarni o'z vaqtida davolamasa, jiddiy asoratlarga olib kelishi mumkin.
✅Shu sababli, 15-avgust kuni tug'ma yurak nuqsonlari bo'yicha BEPUL ko'rik olib borish uchun klinikamizning eng malakali bolalar kardiojarrohi Chirchiq shahriga yo'l oladi:
➡️Bolalar kardiojarrohi - Pirnazarov Jamshid
⭐️AKFA Medline bolalar kardiojarrohlik markazi jamoasi barcha yoshdagi bolalarda eng murakkab yurak nuqsonlarini davolash va tashxislashda yuqori tajribaga ega.
📌Manzil: Toshkent viloyati, "Bolalar ko'p tarmoqli tibbiyot markazi"
Mo'ljal: Chirchiq shahar hokimiyati
👋Bepul ko'rikka yozilish uchun quyidagi raqamlar orqali bog'laning:
+998 70 716 34 00
#akfamedline#sogliq#yordam#senyashaysan
🇺🇿AKFA Medline Universitet Klinikasining yetakchi mutaxassislari Qarshiga yo'l oladi!
☝🏻Faqat 24-sentyabr kuni Qarshi shahrida quyidagi kasallik bilan og'rigan bemorlar uchun ko'riklar amalga oshiriladi:
➡️bolalardagi nevralgiya, migren, turli sohadagi og'riqlar
➡️mioma, tuxumdon saratoni, bepushtlik
➡️artrit, menisklar shikastlanishi, bo'g'imlar bilan bog'liq barcha kasalliklar
🌎Barcha mutaxassislarimiz xalqaro tajribaga ega bo'lib, terapevtik hamda jarrohlik davolashning xavfsiz usullarini puxta egallashgan. Shuningdek, "KESMALARSIZ" o'tkaziladigan noyob operatsiyalarni amalga oshirishadi:
⭐️Tashmatova Sevara - bolalar nevrologi
⭐️Kuralina Yelena - ginekolog shifokor
⭐️Abdullayev Maxsur - ortoped-travmatolog
🤗Barchani quyidagi manzil orqali jonli navbat asosida kutib qolamiz:
📍Qashqadaryo viloyati, Javohir Medical Centre.
Manzil: Qarshi shahri Xontepa mahallasi Sohibkor ko'chasi 121 uy
Mo'ljal: Geolog stadioni ro'parasida
📲Batafsil ma'lumot uchun quyidagi raqamlar orqali bog'laning:
+99855 403-06-66
+99855 402-06-66
#akfamedline#cheteldadavolash#tibbiyyordam#chetellikbemorlar
🇺🇿AKFA Medline Universitet Klinikasining yetakchi mutaxassislari Qarshiga yo'l oladi!
☝🏻Faqat 24-sentyabr kuni Qarshi shahrida quyidagi kasallik bilan og'rigan bemorlar uchun ko'riklar amalga oshiriladi:
➡️bolalardagi nevralgiya, migren, turli sohadagi og'riqlar
➡️mioma, tuxumdon saratoni, bepushtlik
➡️artrit, menisklar shikastlanishi, bo'g'imlar bilan bog'liq barcha kasalliklar
🌎Barcha mutaxassislarimiz xalqaro tajribaga ega bo'lib, terapevtik hamda jarrohlik davolashning xavfsiz usullarini puxta egallashgan. Shuningdek, "KESMALARSIZ" o'tkaziladigan noyob operatsiyalarni amalga oshirishadi:
⭐️Tashmatova Sevara - bolalar nevrologi
⭐️Kuralina Yelena - ginekolog shifokor
⭐️Abdullayev Maxsur - ortoped-travmatolog
🤗Barchani quyidagi manzil orqali jonli navbat asosida kutib qolamiz:
📍Qashqadaryo viloyati, Javohir Medical Centre.
Manzil: Qarshi shahri Xontepa mahallasi Sohibkor ko'chasi 121 uy
Mo'ljal: Geolog stadioni ro'parasida
📲Batafsil ma'lumot uchun quyidagi raqamlar orqali bog'laning:
+99855 403-06-66
+99855 402-06-66
#akfamedline#cheteldadavolash#tibbiyyordam#chetellikbemorlar
👏"Прорыв в онкологии: наш врач вернулся с новыми методами лечения!"
В сентябре наш онколог Равшан Абдусаттаров Абдурауфович успешно завершил стажировку в одном из самых авторитетных медицинских учреждений мира — Венском университете (Австрия).
В течение месяца он осваивал передовые хирургические методы лечения онкологических заболеваний под чутким руководством профессора Оливера Стробеля, признанного мирового лидера в этой области.
Равшан Абдусаттарович прошел глубокую подготовку по проведению самых сложных операций, включая лапароскопические и роботизированные технологии, которые сегодня считаются самыми прогрессивными методами в хирургии.
Полученные знания и навыки теперь будут применены в нашей клинике для того, чтобы обеспечить пациентам наивысший уровень медицинской помощи.
Вернувшись из Австрии с обширным багажом новых технологий и передовых подходов, наш врач готов оказывать помощь еще быстрее, безопаснее и эффективнее. Ваше здоровье — в надежных руках!
📲1141 или 71 2033003
📍Алмазорский район, ул. Малая кольцевая дорога, 5А
🚇Метро Беруни.
♻️Мы в социальных сетях:
Telegram | Instagram | Facebook
#AKFAMedline#онкология#современнаямедицина#успехиврачей