Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
#qabul2025
🟢2025/2026-o‘quv yili uchun ikkinchi mutaxassislik asosida kunduzgi ta’lim shaklidagi yo‘nalishlar:
🟢Biologiya
🟢Kimyo
🟢Fizika
🟢Matematika
🟢Filologiya va tillarni o‘qitish: o‘zbek tili, ingliz tili
🟢Kechki ta’lim shakli yo‘nalishlari:
🟢Biologiya
🟢Kimyo
🟢Fizika
🟢Yurisprudensiya
📌Qabullar joriy yilning 10-avgust sanasiga qadar davom etadi.
✔️Shunchaki diplom emas — bu yangi salohiyat, yangi imkoniyat, yangi hayot sari qadam!
Bizni kuzating
Telegram| Instagram | Facebook | You tube | Sayt
#qabul2025
🟢A.Toshqulov - dolzarb savollarga javoblar.
🟢Ko'rsatuvni to'liq tomosha qilish uchun ushbu havolaga o'ting
➡️
📹https://youtu.be/YVRvD7H-s6c?si=05KL5QxKG3tM_apx
⚡️⚡️Magistraturaga qabul boshlandi
Respublika davlat oliy ta’lim muassasalari magistratura mutaxassisliklariga onlayn roʻyxatdan oʻtish boshlandi.
2025/2026-oʻquv yili uchun davlat OTMlarining magistratura mutaxassisliklariga oʻqishga kirish uchun hujjatlarni topshirish jarayoni vazirlikning rasmiy my.edu.uz platformasi orqali 30-iyulga qadar (shu kuni ham) davom etadi.
Shu oʻrinda, magistratura mutaxassisliklariga tanlovlarda belgilangan talab darajasidagi milliy yoki xalqaro sertifikatga ega shaxslar ishtirok etishi mumkin.
📹Ariza topshirish bo‘yicha videoyo‘riqnoma
👉Sertifikatlar ro‘yxati
#Qabul2025#Magistratura
Bizni kuzating
Facebook | Instagram | YouTube|Telegram
⚡️Rasman: Magistraturaga qabul boshlandi
30-iyulga qadar vaqtingiz bor!
Respublika davlat oliy ta’lim muassasalari magistratura mutaxassisliklariga onlayn roʻyxatdan oʻtish boshlandi.
2025/2026-oʻquv yili uchun davlat OTMlarining magistratura mutaxassisliklariga oʻqishga kirish uchun hujjatlarni topshirish jarayoni vazirlikning rasmiy my.edu.uz platformasi orqali 30-iyulga qadar (shu kuni ham) davom etadi.
Shu oʻrinda, magistratura mutaxassisliklariga tanlovlarda belgilangan talab darajasidagi milliy yoki xalqaro sertifikatga ega shaxslar ishtirok etishi mumkin.
👉Sertifikatlar ro‘yxati
#Qabul2025#Magistratura
@BahoIashUz✅️- Rasmiy taʼlim yangiliklari!
#qabul2025
DAVLAT XALQARO UNIVERSITETIDA QABUL DAVOM ETMOQDA
Farmatsevtika texnik universiteti Buyuk Britaniyaning Sanderland va De Montfort universitetlari bilan hamkorlikda quyidagi yoʻnalishlarda Britaniya oliy ta'lim bakalavr dasturlarini taqdim etmoqda:
✅ Farmatsiya
✅ Biokimyo
✅ Biotibbiyot
✅ Menejment
✅ Data Analitika
🎓 Darslar toʻliq ingliz tilida olib boriladi. Bitiruvchilar xalqaro tan olingan Britaniya diplomini qoʻlga kiritadilar.
✅ MDH da ilk bor farmatsevtika yo’nalishida xalqaro tan olinadigan Britaniya diplomi;
✅ Xorijiy talabalar bilan birga istiqbolli ta’lim;
✅ Magistraturani Britaniyada davom ettirish imkoniyati;
✅ MDH da eng yirik farma klaster - "Tashkent Pharma Park"da amaliyot;
✅O’qishni tamomlash bilan 100% ish bilan taminlash;
✅Ishlab chiqarish va ilmiy tadqiqot bilan integratsiya;
✅60 ta grant oʻrinlari.
Talablar:
🟢 Hayot fanlari uchun – IELTS5.5;
🟢 Menejment va data analitika uchun – IELTS5.0
🟢 maktab shahodatnomasi yoki kollej diplomi.
Dasturlar haqida batafsil maʼlumotni ushbu havolada olish mumkin.
ALOQA UCHUN:
+9989 55-900-05-00
@ptuuz
@ptuuz_bot
⚡️⚡️Magistraturaga qabul boshlandi
Respublika davlat oliy ta’lim muassasalari magistratura mutaxassisliklariga onlayn roʻyxatdan oʻtish boshlandi.
2025/2026-oʻquv yili uchun davlat OTMlarining magistratura mutaxassisliklariga oʻqishga kirish uchun hujjatlarni topshirish jarayoni vazirlikning rasmiy my.edu.uz platformasi orqali 30-iyulga qadar (shu kuni ham) davom etadi.
Shu oʻrinda, magistratura mutaxassisliklariga tanlovlarda belgilangan talab darajasidagi milliy yoki xalqaro sertifikatga ega shaxslar ishtirok etishi mumkin.
📹Ariza topshirish bo‘yicha videoyo‘riqnoma
👉Sertifikatlar ro‘yxati
#Qabul2025#Magistratura
Bizni kuzating
Facebook | Instagram | YouTube|Telegram
Qabul yakunlanishiga 3 kun qoldi
⚡️ Al-Xorazmiy universitetida 2025/2026 o'quv yili uchun o'qishga arizalar qabuli 18-avgustga qadar davom etadi.
💥 Universitetimizda darslar xorijlik hamda mahalliy professor-o'qituvchilar tomonidan to'liq ingliz tilida olib boriladi.
✨ Al-Xorazmiy universiteti “Yangi O‘zbekiston” universiteti tajribasi asosida tashkil etilgan bo'lib, sifatli ta'lim bizning eng ustuvor maqsadimizdir.
👉O'qishga ariza topshirish:https://admission.akhu.uz
🔵 Al-Xorazmiy universiteti bilan texnologiyalar olamining markazida bo'ling.
🔁English
➖➖➖➖➖➖➖➖➖➖➖➖
#qabul2025
👇 Bizning ijtimoiy tarmoqlarimiz:
Veb-sayt | Telegram | Instagram | Facebook | Aloqa-bot
Testlar qaysi mavzular boʻyicha tuziladi ?
✅ Oliy taʼlim muassasalarining bakalavriat taʼlim yoʻnalishlariga kirish test sinovlarida qoʻllaniladigan test topshiriqlarining boʻlimlar boʻyicha oʻrtacha taqsimoti (2021-yilgi maʼlumot)
Majburiy fanlar:
🔢Ona tili (oʻzbek):
— Orfografiya va punktuatsiya — 40 %;
— Leksikologiya, uslubiyat — 40 %;
— Grammatika — 20 %.
🔢Ona tili (rus):
— Fonetika — 10 %;
— Leksika — 10%;
— Grammatika — 40 %;
— Orfografiya — 40 %.
🔢Ona tili (qoraqalpoq):
— Fonetika — 10 %;
— Leksika — 20 %;
— Grammatika — 40 %;
— Orfografiya — 30 %.
🔢Matematika:
— Sonlar va ular ustida amallar — 40 %;
— Foiz, proporsiya va tenglama — 30 %;
— Geometriya — 30 %.
🔢Oʻzbekiston tarixi:
— Qadimgi va oʻrta asrlar tarixi —35-45 %;
— XVI-XX asr boshlaridagi tarixiy davr — 35-45 %;
— Sovetlar davri va mustaqillik davri tarixi — 20-25 %.
Mutaxassislik fanlari boʻyicha rasmda maʼlumot olishingiz mumkin👆
Barcha abituriyentlarga tarqating!
P.S: masʼullar 2025-yilgi yangilangan maʼlumotlarni bergani yoʻq.
Yangilangan maʼlumot berishini soʻrab qolamiz!
Boshqalarga ham tarqating!📣
#abituriyent#qabul2025
@BahoIashUz✅️- Rasmiy taʼlim yangiliklari!
Testlar qaysi mavzular boʻyicha tuziladi ?
✅ Oliy taʼlim muassasalarining bakalavriat taʼlim yoʻnalishlariga kirish test sinovlarida qoʻllaniladigan test topshiriqlarining boʻlimlar boʻyicha oʻrtacha taqsimoti (2021-yilgi maʼlumot)
Majburiy fanlar:
🔢Ona tili (oʻzbek):
— Orfografiya va punktuatsiya — 40 %;
— Leksikologiya, uslubiyat — 40 %;
— Grammatika — 20 %.
🔢Ona tili (rus):
— Fonetika — 10 %;
— Leksika — 10%;
— Grammatika — 40 %;
— Orfografiya — 40 %.
🔢Ona tili (qoraqalpoq):
— Fonetika — 10 %;
— Leksika — 20 %;
— Grammatika — 40 %;
— Orfografiya — 30 %.
🔢Matematika:
— Sonlar va ular ustida amallar — 40 %;
— Foiz, proporsiya va tenglama — 30 %;
— Geometriya — 30 %.
🔢Oʻzbekiston tarixi:
— Qadimgi va oʻrta asrlar tarixi —35-45 %;
— XVI-XX asr boshlaridagi tarixiy davr — 35-45 %;
— Sovetlar davri va mustaqillik davri tarixi — 20-25 %.
Mutaxassislik fanlari boʻyicha rasmda maʼlumot olishingiz mumkin👆
Barcha abituriyentlarga tarqating!
P.S: masʼullar 2025-yilgi yangilangan maʼlumotlarni bergani yoʻq.
Yangilangan maʼlumot berishini soʻrab qolamiz!
Boshqalarga ham tarqating!📣
#abituriyent#qabul2025
@BahoIashUz✅️- Rasmiy taʼlim yangiliklari!
⚡️Rasman: Maksimal ball 189 bo'ladi, 90 ta test, 3 soat vaqt!
Kirishimtihonida 5 ta fandan jami 90 ta savol tushadi.Maksimal ball – 189!
👉 Barchatest topshiruvchilar uchun majburiy bo‘lgan 3 ta fan bo‘yicha:
➖ Ona tili(o‘zbek, rus yoki qoraqalpoq tili) - 10 ta savol.
Har biri uchun 1,1 balldan.
Maksimal ball – 11 ball.
➖ Matematika - 10 ta savol.
Har biri uchun 1,1 balldan.
Maksimal ball – 11 ball.
➖ O‘zbekiston tarixi - 10 ta savol.
Har biri uchun 1,1 balldan.
Maksimal ball – 11 ball.
✅Jami to‘plash mumkin bo‘lgan ball – 33 ball.
👉Bakalavriatta’lim yo‘nalishiga mos bo‘lgan 2 ta fan:
➖1-fan: 30 ta savol x3.1 ball = 93.0 ball
➖2-fan: 30 ta savol x 2.1 ball = 63.0 ball
✅60 ta savoldan jami 156,0 ball.
⏳ Umumiy holda, abituriyentlarga 5 ta fan bo‘yicha jami 90 ta test topshirig‘i beriladi. 90 ta test uchun ajratiladigan vaqt esa 3 soat.
#Abituriyent#Qabul2025
@BahoIashUz✅️- Rasmiy taʼlim yangiliklari!
❗️Oxirgi imkoniyat
🏛Toshkent davlat transport universiteti akademik litseyida qabul bugun soat 23:59 gacha davom etadi.
🤝Orzuingizni kechiktirmang — bugun hujjat topshiring va kelajagingizni biz bilan yarating!
🌐Hujjat topshirish my.edu.uz portali orqali!
#AkademikLitsey#Qabul2025
🌐Akademik litsey sahifalari:
Telegram | Instagram | Facebook
❕Diqqat!
❗️Qabul yakunlanmoqda!
🏛BugunToshkent davlat transport universiteti akademik litseyiga hujjat topshirishning soʻnggi kuni!
🤝Orzuingizni kechiktirmang — bugun hujjat topshiring va kelajagingizni biz bilan yarating!
📚✍️Oxiri imkoniyatni qoʻldan boy bermang!
🌐Hujjat topshirish my.edu.uz portali orqali!
#AkademikLitsey#Qabul2025
🌐Akademik litsey sahifalari:
Telegram | Instagram | Facebook