Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
#maqola
TIZIMLI YONDASHUVLAR TARAQQIYOTIMIZ POYDEVORINI YANADA MUSTAHKAMLASHGA XIZMAT QILADI!
Mazkur farmon faqatgina qonunchilik akti bo‘lib qolmay, balki davlat va xalq o‘rtasidagi o‘zaro ishonch, jamiyatdagi birdamlik hamda kelajakka bo‘lgan qat’iy ishonchning amaliy ifodasi hisoblanadi. Hujjatning muhim jihati shundaki, unda islohotlar dasturlari hamda Davlat dasturining bir-biridan farqli, ayni paytda bir-birini uzviy to‘ldiruvchi xususiyatlariga chuqur urg‘u berilgan.
📱Toʻliq oʻqish uchun: https://yuz.uz/oz/news/tizimli-yondashuvlar-taraqqiyotimiz-poydevorini-yanada-mustahkamlashga-xizmat-qiladi
✍️ Maqola muallifi: Muhayyo ISMAILOVA, Respublika Maʼnaviyat va maʼrifat markazi Toshkent shahar boʻlimi rahbari
👉Rasmiy sahifalarimiz:
TELEGRAM | INSTAGRAM | FACEBOOK
#Maqola#YangiO'zbekiston
Markaziy Osiyoning zamonaviy temir yo‘l arxitekturasi
🇺🇿 Mirzo Ulug‘bek nomidagi O‘zbekiston Milliy universiteti dotsenti, tarix fanlari doktori Ozodbek Rajabovning "Markaziy Osiyoning zamonaviy temir yo‘l arxitekturasi" nomli maqolasi "Yangi O‘zbekiston" gazetasida chop etildi.
👉Maqola bilan tanishish
📰
Temir yo‘l jahon iqtisodiyoti va jamiyatlar taqdirini tubdan o‘zgartirib yubora oladigan muhim transport tarmog‘idir. Shu sabab u sanoat inqilobi davridan buyon muttasil rivojlanib kelmoqda. Zero, temir yo‘l transporti orqali xomashyo va tayyor mahsulotlarning tez hamda arzon tashilishi har qanday davlatning iqtisodiy rivojlanishini jadallashtiradi.
📰
Bu tarmoq yetib borgan hududlarda yangi shahar va aholi punktlari, bozor va savdo markazlari paydo bo‘lishi ham bejiz emas. Hududlararo temir yo‘l aloqasining yo‘lga qo‘yilishi odamlarning erkin harakatlanishi, hududiy birlik va madaniy integratsiyani kuchaytiradi.
☑O’zbekiston Milliy universiteti
#maqola
✨Yagona odob-axloq kodeksi kerak
✍️Gulchehra To'laganova
🏛 TDYU professori, yuridik fanlar doktori
"Inson va qonun" gazetasi № 19 - son 13-may 2025-yil.
👉@tsullibrary👈
♾️♾️♾️♾️♾️♾️♾️
✍️ Статья Гульчехры Толагановой, доктора юридических наук, профессора ТГЮУ.
Газета «Inson va qonun»№19 от 13-мая 2025 года.
Текст на узбекском языке.
👉@tsullibrary👈
#Maqola
Orzusini maqsadga aylantirgan huquqshunos
✍️Gulchehra Tulaganova
🏛TDYU Jinoyat-protsessual huquqi kafedrasi professori, yuridik fanlari doktori.
"Inson va qonun" gazetasi №5-son 4-fevral 2025-yil
#maqola
📜"ПУТЬ К РЕФОРМАМ: РОЛЬ ПАРЛАМЕНТА В БУДУЩЕМ УЗБЕКИСТАНА"
✍️Sobir Alishayev
🏛Jinoyat-protsessual huquqi kafedrasi o'qituvchisi
✍️Ulzana Rahimova
🏛Jinoyat-protsessual huquqi kafedrasi katta o'qituvchisi, yuridik fanlari bo'yicha falsafa doktori
📰"Pravda Vostoka" gazetasi. 211-son 2024-yil 18-oktyabr
Kanalga obuna bo'ling: @TSUL_CPL
#maqola
✨ "Saylov - 2024"
Saylovga oid qonunbuzarlikka jazo bor
✍️Gulchehra To'laganova
🏛 TDYU professori, yuridik fanlar doktori
"Inson va qonun" gazetasi № 40 - son 8-oktabr 2024-yil.
👉@tsullibrary👈
♾️♾️♾️♾️♾️♾️♾️
✍️ Статья Гульчехры Толагановой, доктора юридических наук, профессора ТГЮУ.
Газета «Inson va qonun»№ 40 от 8 октября 2024 года.
Текст на узбекском языке.
👉@tsullibrary👈
#maqola
✨За строкой указа
ОБЕСПЕЧЕНИЕ СУДЕБНОЙ
ЗАЩИТЫ ПРАВ И СВОБОД ЛИЧНОСТИ
НА ДОСУДЕБНОЙ СТАДИИ
✍️Дилбар Суюнова
🏛 Профессор ТГЮУ доктор юридических наук.
"Правда Востока" № 128 от 29 июня 2024 года.
👉@tsullibrary👈
➰➰➰➰➰➰
✍️ TDYU professori, yuridik fanlar doktori Dilbar Suyunovaning maqolasi.
"Правда Востока" gazetasi № 128- son 29-iyun 2024-yil
matn rus tilida.
👉@tsullibrary👈
✨ADVOKATURAMIZ ISTIQBOLLARI
#maqola
📃"Qonunlarni tushunish haqiqatan qiyinmi yoki muammo fuqarolarning tushunish darajasidami? "
✍ Madinabonu Yo'ldosheva
🏛TDYU Jinoiy odil sudlov fakulteti 1-kurs talabasi, TDYU Yuridik klinikasi volontyori
"Advokat" gazetasi 6-son iyun 2024-yil.
@TDYU_Yuridik_klinikasi
➰➰➰➰➰➰➰➰
#maqola
📃"Reabilitatsiya etilgan shaxslarga yetkazilgan ziyonni qoplash va uning boshqa huquqlarini tiklash tartibi qanday? "
✍ Nazokat Umarova
🏛TDYU Jinoiy odil sudlov fakulteti 1-kurs talabasi, TDYU Yuridik klinikasi volontyori
"Advokat " gazetasi 6-son iyun 2024-yil.
@TDYU_Yuridik_klinikasi
#maqola
✨Актуально
РАСШИРЕНИЕ ГОРИЗОНТОВ: НОВЫЕ ВОЗМОЖНОСТИ В МИРЕ МАЙНИНГА
✍️Бахтияр Хидоятов
🏛 Профессор кафедры ТГЮУ, кандидат юридических наук.
✍️Бахрам Худайбергенов.
🏛 Доцент кафедры ТГЮУ, доктор философии по юридическим наукам.
"Правда востока"№ 46 от 5 марта 2024 года.
👉@tsullibrary👈
〰️〰️〰️〰️〰️
✍️ TDYU fakulteti professori, yuridik fanlar nomzodi Baxtiyor Hidoyatov va dotsenti, huquq fanlari bo'yicha falsafa doktori Bahram Xudaybergenovlarning maqolalari.
"Правда востока" gazetasi № 46-son 5-mart 2024-yil
matn rus tilida.
👉@tsullibrary👈
#maqola
📣“Yilning eng yaxshi materiali” tanlovi I o‘rin sohibi Komila RAJABOVAning maqolasi "Til va adabiyot ta’limi" jurnalining 2025-yil 1-sonida e‘lon qilindi.
🔠BATAFSIL
🌐Sayt
✈️Telegram
✅Murojaat
♾Muhokama
#maqola
❓“Yaxshilig‘” g‘azali yozilishiga qaysi voqealar sabab bo‘lgan?
🔥Milliy sertifikat imtihoniga tayyorlanayotganlar bu maqolani albatta o‘qishi kerak!
✏️ Muallif: Ergash OCHILOV, O‘zR FA O‘zbek tili, adabiyoti va folklori instituti katta ilmiy xodimi, filologiya fanlari nomzodi
Maqola “Til va adabiyot ta’limi” jurnalining 2024-yilgi 12-sonida chiqqan.
🔣BATAFSIL
📱Sayt📱Telegram📱Murojaat📱Muhokama
#maqola
📌Chelak, Buyrak, Cho‘michli – etnotoponimlarning kelib chiqishi tahlili
Yurtimizda joy nomlari ko‘p bahslarga sabab bo‘ladi. Ayrim hududlarda bo'lar-bo'lmasga tarixiy toponimlarni olib tashlab, dilkusho-yu sarbonga o‘xshash chuchmal nomlarni qo'yishmoqda. Bu xalqni ildizidan ayirish bilan teng. Qaytanga, yosh avlodga eski toponimlar ma'nosini tushuntirish va bundan faxr uyg‘otish kerak. Ushbu jarayonda Siz muallimlarning rolingiz beqiyos.
“Til va adabiyot ta’limi” jurnalining 2024-yilgi 12-sonida Oʻzbekiston-Finlandiya pedagogika instituti o‘qituvchisi Oybek GADOYEV joy nomlarining turkiy urug‘-qabilalarga bog‘liqligini Payariq tumani misolida tahlil qilgan.
🔣BATAFSIL
📱Sayt📱Telegram📱Murojaat📱Muhokama