Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
#admission
Tibbiyot yo’nalishida ta’lim olmoqchimisiz❓
Qayerni tanlashni bilmayapsizmi❓
✅KIUT Namangan filiali tibbiyot yo’nalishi siz uchun eng to’g’ri manzil❗️
📌Bizda jumladan:
Stomatologiya
Davolash ishi
Oliy hamshiralik
Pediatriya kabi
yo’nalishlar mavjud.
🔰Imtihon biologiya, kimyo, ona tili fanlaridan bo’lib o’tadi. O’qish davomiyligi yo’nalishiga qarab, 4 yildan 6 yilgacha.
Undan tashqari Magistratura mutaxassisliklari bo’yicha o’qish imkoniyatiga ham egasiz.
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI:
📞+998692104040
Manzil: Namangan sh, Chortoq ko'chasi, 75A-uy
Bizni kuzating
🌐Website I ✅Telegram I 🌐Instagram I 📹Youtube
#admission
Tibbiyot yo’nalishida ta’lim olmoqchimisiz❓
Qayerni tanlashni bilmayapsizmi❓
✅KIUT Namangan filiali tibbiyot yo’nalishi siz uchun eng to’g’ri manzil❗️
📌Bizda jumladan:
Stomatologiya
Davolash ishi
Oliy hamshiralik
Pediatriya kabi
yo’nalishlar mavjud.
🔰Imtihon biologiya, kimyo, ona tili fanlaridan bo’lib o’tadi. O’qish davomiyligi yo’nalishiga qarab, 4 yildan 6 yilgacha.
Undan tashqari Magistratura hamda Doktorantura mutaxassisliklari bo’yicha o’qish imkoniyatiga ham egasiz.
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI:
📞+998692104040
Manzil: Namangan sh, Chortoq ko'chasi, 75A-uy
Bizni kuzating
🌐Website I ✅Telegram I 🌐Instagram I 📹Youtube
#admission
🔊Ko’plab insonlarning xohish-istagi bo’lgan "Tibbiyot yo’nalishi" endi Toshkent Kimyo xalqaro universiteti Namangan filialida ham ochilganligini ma’lum qilamiz.
📌Bizda jumladan:
Stomatologiya
Davolash ishi
Oliy hamshiralik
Pediatriya kabi
yo’nalishlar mavjud.
🔰Imtihon biologiya, kimyo, ona tili fanlaridan bo’lib o’tadi. O’qish davomiyligi yo’nalishiga qarab, 4 yildan 6 yilgacha.
Undan tashqari Magistratura hamda Doktorantura mutaxassisliklari bo’yicha o’qish imkoniyatiga ham egasiz.
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI:
📞+998692104040
Manzil: Namangan sh, Chortoq ko'chasi, 75A-uy
Bizni kuzating
🌐Website I ✅Telegram I 🌐Instagram I 📹Youtube
Diqqat ❗️
KIUT Namangan filiali maxfiy ma’lumotlarni oshkor etdi😅
#admission
🔊Ko’plab insonlarning xohish-istagi bo’lgan Tibbiyot yo’nalishi endi Toshkent Kimyo xalqaro universiteti Namangan filialida ham ochilganligini ma’lum qilamiz.
📌Bizda jumladan:
Stomatologiya
Davolash ishi
Oliy hamshiralik
Pediatriya kabi yo’nalishlar mavjud.
🔰Imtihon biologiya, kimyo, ona tili fanlaridan bo’lib o’tadi. O’qish davomiyligi yo’nalishiga qarab, 4 yildan 6 yilgacha.
Undan tashqari Magistratura hamda Doktorantura mutaxassisliklari bo’yicha o’qish imkoniyatiga ham egasiz.
Ro’yxatdan o’tish uchun: admission.kiut.uz
📑TASHKILIY ASOSLARI:
🧾Litsenziya №241991
🧾VMQ №1007
🧾Xalqaro akkreditatsiyalar
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI:
+998692104040 (1)
📌Namangan sh, Chortoq ko'chasi, 75-A uy
Ro'yxatdan o'tish uchun: 👇👇
https://admission.kiut.uz/
Bizni kuzatishda davom eting.
🌐Website💬Telegram🌐Instagram🌐Youtube🌐Facebook
#admission
📌Biznes va moliya yo’nalishi bilan kelajakning yetakchi mutaxassisi bo’ling!
💵Sizni biznes va moliya yo’nalishlarida yangi imkoniyatlarga yo'l ochayotgan Toshkent Kimyo xalqaro universiteti Namangan filialiga taklif qilamiz!
💰Ushbu yo’nalishlar nafaqat o’zgaruvchan global iqtisodiy muhitda muvaffaqiyatli faoliyat yuritish uchun zarur bo'lgan bilim va ko'nikmalarni taqdim etadi, balki sizga o'z biznes strategiyalaringizni ishlab chiqish va moliya boshqaruvi sohasida yetakchi bo'lish imkoniyatini ham beradi.
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI
📞+998692104040
📌Manzil: Namangan sh, Chortoq ko'chasi, 75A-uy
ANDIJON QABUL MARKAZI:
+99899 9273500
Manzil: Andijon shaxri , Boburshox ko’chasi , 22-A uy
FARG’ONA QABUL MARKAZI:
+99899 9275900
Manzil: Farg’ona viloyati , Farg’ona shaxri , Vatan ravnaqi ko’chasi , Dexqon bozori oldidagi Ixlos binosi
Bizni kuzating
🌐Website I ✅Telegram I 🌐Instagram I 📹Youtube I
#admission
Toshkent Kimyo xalqaro universiteti Namangan filialida
QABUL DAVOM ETMOQDA!
Kelajagingizga befarq bo’lmang! Orzularingizga KIUT bilan erishing.
🎓TA'LIM BOSQICHLARI:
—Bakalavriat
—Magistratura
—Doktorantura
TA’LIM SHAKLLARI:
— Kunduzgi
— Kechki
— Sirtqi
TAʼLIM TILLARI:
🇺🇿 Oʼzbek tili
🇷🇺 Rus tili
🇬🇧 Ingliz tili
📑TASHKILIY ASOSLARI:
🧾Litsenziya №241991
🧾VMQ №1007
🧾Xalqaro akkriditatsiyalar
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI:
+99869 2104040 (1)
Manzil: Namangan sh, Chortoq ko'chasi, 75A-uy
ANDIJON QABUL MARKAZI:
+99899 9273500
Manzil: Andijon shaxri , Boburshox ko’chasi , 22-A uy
FARG’ONA QABUL MARKAZI:
+99899 9275900
Manzil: Farg’ona viloyati , Farg’ona shaxri , Vatan ravnaqi ko’chasi , Dexqon bozori oldidagi Ixlos binosining 1-qavati
Ro'yhatdan o'tish uchun:
https://admission.kiut.uz/
Bizni kuzatishda davom eting.
🌐Website💬Telegram🌐Instagram🌐Youtube🌐Facebook
#admission
Toshkent Kimyo xalqaro universiteti Namangan fililali
Toshkent Kimyo xalqaro universiteti Namangan filiali, "Pedagogika va psixologiya" kafedrasi "Maxsus pedagogika" fani oʻqituvchisi
Jurayeva Mushtariy Muxaydinovna boshchiligida, 24- iyun kuni SPDP_N-22 UI sirtqi taʼlim yoʻnalishi talabalari bilan, LOGOPEDIYA fanidan
"Duduqlanishning kelib chiqish sabablari va uni bartaraf etish usullari" mavzusida ochiq dars boʻlib oʻtdi.
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI:
📞+998692104040 (1)
✅Telegram 👩🏻💻
📌Manzil: Namangan sh, Chortoq ko'chasi, 75A-uy
ANDIJON QABUL MARKAZI:
+99899 9273500
Manzil: Andijon shaxri , Boburshox ko’chasi , 22-A uy
FARG’ONA QABUL MARKAZI:
+99899 9275900
Manzil: Farg’ona viloyati , Farg’ona shaxri , Vatan ravnaqi ko’chasi , Dexqon bozori oldidagi Ixlos binosi
🌐Website I ✅Telegram I 🌐Instagram I 📹Youtube I
#admission
🔊Ko’plab insonlarning xohish-istagi bo’lgan "Tibbiyot yo’nalishi" endi Toshkent Kimyo xalqaro universiteti Namangan filialida ham ochilganligini ma’lum qilamiz.
📌Bizda jumladan:
Stomatologiya
Davolash ishi
Oliy hamshiralik
Pediatriya kabi
yo’nalishlar mavjud.
🔰Imtihon biologiya, kimyo, ona tili fanlaridan bo’lib o’tadi. O’qish davomiyligi yo’nalishiga qarab, 4 yildan 6 yilgacha.
Undan tashqari Magistratura hamda Doktorantura mutaxassisliklari bo’yicha o’qish imkoniyatiga ham egasiz.
Ro’yxatdan o’tish uchun:
admission.kiut.uz
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI:
📞+998692104040
Manzil: Namangan sh, Chortoq ko'chasi, 75A-uy
ANDIJON QABUL MARKAZI:
📞+99899 9273500
Manzil: Andijon shaxri , Boburshox ko’chasi , 22-A uy
FARG’ONA QABUL MARKAZI:
📞+99899 9275900
Manzil: Farg’ona viloyati , Farg’ona shaxri , Vatan ravnaqi ko’chasi , Dexqon bozori oldidagi Ixlos binosi
Bizni kuzating
🌐Website I ✅Telegram I 🌐Instagram I 📹Youtube
#admission#dtmnatija
DTM natijasi bilan Toshkent Kimyo xalqaro universiteti Namangan filialida talaba bo'ling
QABUL DAVOM ETMOQDA!
Kelajagingizga befarq bo’lmang! Orzularingizga KIUT bilan erishing.
🎓TA'LIM BOSQICHLARI:
—Bakalavriat
—Magistratura
—Doktorantura
TA’LIM SHAKLLARI:
— Kunduzgi
— Kechki
— Sirtqi
TAʼLIM TILLARI:
🇺🇿 Oʼzbek tili
🇷🇺 Rus tili
🇬🇧 Ingliz tili
📑TASHKILIY ASOSLARI:
🧾Litsenziya №241991
🧾VMQ №1007
🧾Xalqaro akkriditatsiyalar
BOG'LANISH UCHUN:
NAMANGAN QABUL MARKAZI:
+99869 2104040 (1)
Manzil: Namangan sh, Chortoq ko'chasi, 75A-uy
ANDIJON QABUL MARKAZI:
+99899 9273500
Manzil: Andijon shaxri , Boburshox ko’chasi , 22-A uy
FARG’ONA QABUL MARKAZI:
+99899 9275900
Manzil: Farg’ona viloyati , Farg’ona shaxri , Vatan ravnaqi ko’chasi , Dexqon bozori oldidagi Ixlos binosining 1-qavati
Ro'yhatdan o'tish uchun:
https://admission.kiut.uz/
Bizni kuzatishda davom eting.
🌐Website💬Telegram🌐Instagram🌐Youtube🌐Facebook
3️⃣3️⃣3️⃣ • Toshkent davlat yuridik universitetiga suhbat asosida kirishni xohlaysizmi?
👉 Batafsil infografikada
3️⃣3️⃣3️⃣ • Хотите поступить в Ташкентский государственный юридический университет через собеседование?
👉 Подробнее в инфографике
3️⃣3️⃣3️⃣3️⃣ • Do you want to enroll in Tashkent State University of Law through an interview?
👉 More in the infographic
👍❤️📩@tsulofficial#qabul#прием#admission
🟥🟥🟥
🔈 Biznes va tadbirkorlik oliy maktabi Janubiy Koreyaning Adju universiteti bilan hamkorlikda MBA "IT biznes" mutaxassisligi bo‘yicha "Dual degree" xalqaro dasturiga 2024-2025 - o‘quv yili uchun qabul davom etmoqda!
🗂 Ta’lim kunduzgi shaklda bo‘lib, birinchi o‘quv yili O‘zbekistonda, ikkinchi o‘quv yili Koreyada davom etadi. Dastur yakunida tinglovchilar Oliy maktabining “Biznesni boshqarish” (MBA) va Adju universitetining “IT-Busines” magistr diplomlarini oladilar.
✅Mazkur dasturda ishtirok etish uchun quyidagi hujjatlar talab etiladi:
✅ Oliy ma’lumot to‘g‘risidagi diplomning nusxasi;
✅ Pasport yoki ID karta (imtihon vaqtida asl nusxasi taqdim etiladi);
✅ Ingliz tilini bilishini tasdiqlovchi IELTS bo‘yicha 5,5 ball, TOEFL bo‘yicha 72 balldan kam bo‘lmagan darajada xalqaro sertifikatlar.
✅ Hujjat qabul qilish muddati: 2024-yil, 1-avgustgacha.
🗓 Qabul komissiyasining ishlash jadvali: Dushanba – Juma kunlari, soat 9:00 dan 18:00 gacha.
🖱O‘qishga hujjat topshirish faqat elektron shakldaOliy maktabning veb-sayti orqali har kuni24 soat mobaynida amalga oshiriladi.
📞 Ma’lumot uchun telefon: +99871-239-03-15
🌐 Hujjat topshirish
#GraduateSchool#Admission#Korea#Ajou
🌐Web-site | ✅Telegram | ✅Facebook |🌐Instagram
🟥🟥🟥
🔈 Biznes va tadbirkorlik oliy maktabi Janubiy Koreyaning Adju universiteti bilan hamkorlikda MBA "IT biznes" mutaxassisligi bo‘yicha "Dual degree" xalqaro dasturiga 2024-2025 - o‘quv yili uchun qabul davom etmoqda!
🗂 Ta’lim kunduzgi shaklda bo‘lib, birinchi o‘quv yili O‘zbekistonda, ikkinchi o‘quv yili Koreyada davom etadi. Dastur yakunida tinglovchilar Oliy maktabining “Biznesni boshqarish” (MBA) va Adju universitetining “IT-Busines” magistr diplomlarini oladilar.
✅Mazkur dasturda ishtirok etish uchun quyidagi hujjatlar talab etiladi:
✅ Oliy ma’lumot to‘g‘risidagi diplomning nusxasi;
✅ Pasport yoki ID karta (imtihon vaqtida asl nusxasi taqdim etiladi);
✅ Ingliz tilini bilishini tasdiqlovchi IELTS bo‘yicha 5,5 ball, TOEFL bo‘yicha 72 balldan kam bo‘lmagan darajada xalqaro sertifikatlar.
✅ Hujjat qabul qilish muddati: 2024-yil, 1-avgustgacha.
🗓 Qabul komissiyasining ishlash jadvali: Dushanba – Juma kunlari, soat 9:00 dan 18:00 gacha.
🖱O‘qishga hujjat topshirish faqat elektron shakldaOliy maktabning veb-sayti orqali har kuni24 soat mobaynida amalga oshiriladi.
📞 Ma’lumot uchun telefon: +99871-239-03-15
🌐 Hujjat topshirish
#GraduateSchool#Admission#Korea#Ajou
🌐Web-site |
✅Telegram |
✅Facebook |
🌐Instagram