Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
🤖 ZARARLI "APK" ILOVALARI ENDI SIZGA XAVF SOLOLMAYDI
🇺🇿 SAMARQAND VILOYATI IIB AXBOROT TEXNOLOGIYALARI SOHASIDAGI JINOYATLARGA QARSHI KURASHISH BOSHQARMASI TOMONIDAN:
📦 Zararli "APK" havolalarini aniqlay oluvchi yangi "samcyber102" ilovasi ishlab chiqildi. Bu ilova sizga, telefon qurilmangizga zarar yetkazishi mumkin bo‘lgan xavfli fayllarni ishlatishdan avval ogohlantirish imkonini beradi.
✅ Ilovaning afzalliklari:
- Ilovani
🤖Google Play dan yuklab olish mumkin
- APK havolalarini aniqlash va xavfli fayllardan ogohlantirish
- Telefon maʼlumotlaringizni himoya qilish
- Foydalanuvchi uchun oddiy va qulay interfeys
🆘 Yaqinlaringizga yuborib qo‘yishni unutmang!
➡️#virus | Birinchi raqamli IT-Blog
🔔Viruslar: ehtiyot boʻling yuqib qolmasin!
Fayl viruslari
Bu viruslar fayllar ichiga yashiriladi. Foydalanuvchi buni hatto sezmaydi. Faylni koʻchirish jarayonida virus ham birga koʻchadi. Uning boshqa nomi parazit virus, chunki fayl viruslari nafaqat fayllarga, balki serverga ham zarar yetkazadi.
Brauzer oʻgʻrisi
Nomidan koʻrinib turibdiki, virusning asosiy vazifa brauzerga zarar yetkazishdir. U brauzerni qayta yoʻnaltirish virusi deb ham ataladi, chunki u brauzeringizni kompyuter tizimiga zarar yetkazishi mumkin boʻlgan boshqa zararli saytlarga yoʻnaltiradi.
Chuvalchang virusi
Albatta, nomi kulgili. Lekin qiladigan ishi haqida bunday deya olmaymiz. Virus koʻpayish xususiyatiga ega. Kompyuteringizga tushgach uning xotirasini toʻldirishni boshlaydi. Baʼzi kuzatuvchilarimiz kompyuterlarining xotirasi tez toʻlib qolishidan nolishadi, har ehtimolga qarshi antivirusingizni yangilashni maslahat beramiz.
💻@ITMastersUz | @mohirdev | #virus
Ogoh bo'ling! Yangi virus Windows yangilanishi ko'rinishida kompyuterlarni bloklashi mumkin.
Trend Micro va Fortinet kompaniyalarining axborot xavfsizligi bo'yicha mutaxassislari yangi Big Heat virusini topdilar, u kompyuterga kirib, barcha fayllarni shifrlaydi va pul undiradi.
Big Heat Internetda Windows va Microsoft Word o'rnatuvchisi uchun yangilanishlar niqobi ostida tarqatiladi.
Zararli fayl faollashtirilgandan so'ng, ekranda Windows yangilash jarayoniga taqlid qiluvchi animatsiya paydo bo'ladi.
Jarayon tugagandan so'ng, foydalanuvchi uning kompyuteri shifrlanganligi haqida xabar oladi - tizimni tiklash uchun siz elektron pochta yoki Telegram orqali xakerlar bilan bog'lanishingiz kerak.
U yerda hakerlar jabrlanuvchidan ularning hisobiga kriptovalyutadagi to'lovni o'tkazishni so'rashadi.
👉Bizning barcha loyihalar | #virus
Ogoh bo'ling! Yangi virus Windows yangilanishi ko'rinishida kompyuterlarni bloklashi mumkin.
Trend Micro va Fortinet kompaniyalarining axborot xavfsizligi bo'yicha mutaxassislari yangi Big Heat virusini topdilar, u kompyuterga kirib, barcha fayllarni shifrlaydi va pul undiradi.
Big Heat Internetda Windows va Microsoft Word o'rnatuvchisi uchun yangilanishlar niqobi ostida tarqatiladi.
Zararli fayl faollashtirilgandan so'ng, ekranda Windows yangilash jarayoniga taqlid qiluvchi animatsiya paydo bo'ladi.
Jarayon tugagandan so'ng, foydalanuvchi uning kompyuteri shifrlanganligi haqida xabar oladi - tizimni tiklash uchun siz elektron pochta yoki Telegram orqali xakerlar bilan bog'lanishingiz kerak.
U yerda hakerlar jabrlanuvchidan ularning hisobiga kriptovalyutadagi to'lovni o'tkazishni so'rashadi.
👉Bizning barcha loyihalar | #virus
THE FOREVER VIRUS
In a perceptive article titled “The forever virus” published in the July-August issue of Foreign Affairs, authors caution that the #virus “is not going away”.
Read more»»
@Enviro_Climate
Microsoft Defender bilan kompyuterni virusga tekshirish
🔐 Avval aytganimizdek, Microsoft Defender Windows operatsion tizimi bilan birga o'rnatilgan ichki himoya dasturidir.
⚙️Microsoft Defender-ga 1- va 2-rasmdagidek Settings > Update & Security > Windows Security va Open Windows Security tugmasini bosish orqali dasturga kiriladi (yoki pastki o'ng burchakdan Windows ikonkasini bosib kirishingiz mumkin).
🔺 Agar sizda 3-rasmdagi kabi barcha belgilar yashil bo'lsa, demak, havotirga o'rin yo'q, kompyuteringiz Microsoft Defender tomonidan qo'riqlanmoqda.
🔹 Aks holda, biron-bir bo'limda qizil belgisi bo'lsa, demak, o'sha qism ishlamayapti (4-rasm). Ishlatish uchun Turn on tugmasini bosish kifoya.
ℹ️ Agar kompyuteringizni virus uchun tekshirmoqchi bo'lsangiz, Virus & threat protection bo'limiga o'ting va Quick scan tugmasini bosing. Qisqa vaqt ichida kompyuteringiz tekshiriladi va natijalar ko'rsatiladi.
🌐Birinchi raqamli Windows Blog | #foydali / #virus
Malware - nima?
ℹ️Malware (kengaytmasi: malicious software; o'zbekchada: zararli dasturiy ta'minot) bu kompyuterga, serverga yoki kompyuter tarmog'iga zarar yetkazish uchun qasddan ishlab chiqilgan har qanday dasturiy ta'minotdir.
🦠Malware - kompyuter viruslari, worm-lar, troyan viruslari, ransomware, spyware, adware-larning "otasidir", ya'ni yuqorida sanab o'tilganlarning hammasi umumiy qilib malware deyiladi.
☠️Malware barcha ma'lumotlarni, o'g'irlashdan tortib to butun tizimlar yoki qurilmalarni buzishgacha bo'lgan har xil xavfli ishlarni amalga oshirishi mumkin.
🛡Malware-lardan himoyalanish foydalanuvchi hushyorligi va u ishlatadigan himoya vositalariga bog'liqdir.
📩 Zararli dasturlarni tarqatuvchilar o'z o'ljalarini "Siz iPhone X yutub oldingiz. Olish uchun bu yerga o'ting" yoki "Falon brenddan aksiya" deb o'zlariga jalb qiladilar.
P.S.: Shunday ekan har xil yolg'onlarga aldanmang,tekin pishloq faqat qopqonda bo'ladi.
👉🏼Birinchi raqamli Windows Blog | #virus / #foydali
Malware - nima?
ℹ️Malware (kengaytmasi: malicious software; o'zbekchada: zararli dasturiy ta'minot) bu kompyuterga, serverga yoki kompyuter tarmog'iga zarar yetkazish uchun qasddan ishlab chiqilgan har qanday dasturiy ta'minotdir.
🦠Malware - kompyuter viruslari, worm-lar, troyan viruslari, ransomware, spyware, adware-larning "otasidir", ya'ni yuqorida sanab o'tilganlarning hammasi umumiy qilib malware deyiladi.
☠️Malware barcha ma'lumotlarni, o'g'irlashdan tortib to butun tizimlar yoki qurilmalarni buzishgacha bo'lgan har xil xavfli ishlarni amalga oshirishi mumkin.
🛡Malware-lardan himoyalanish foydalanuvchi hushyorligi va u ishlatadigan himoya vositalariga bog'liqdir.
📩 Zararli dasturlarni tarqatuvchilar o'z o'ljalarini "Siz iPhone X yutub oldingiz. Olish uchun bu yerga o'ting" yoki "Falon brenddan aksiya" deb o'zlariga jalb qiladilar.
P.S.: Shunday ekan har xil yolg'onlarga aldanmang,tekin pishloq faqat qopqonda bo'ladi.
👉🏼Birinchi raqamli Windows Blog | #virus / #foydali
Microsoft Defender bilan kompyuterni virusga tekshirish
🛡 Avval aytganimizdek, Microsoft Defender Windows operatsion tizimi bilan birga o'rnatilgan ichki himoya dasturidir.
⚙️Microsoft Defender-ga 1- va 2-rasmdagidek Settings > Update & Security > Windows Security va Open Windows Security tugmasini bosish orqali dasturga kiriladi (yoki pastki o'ng burchakdan Windows ikonkasini bosib kirishingiz mumkin).
✅ Agar sizda 3-rasmdagi kabi barcha belgilar yashil bo'lsa, demak, havotirga o'rin yo'q, kompyuteringiz Microsoft Defender tomonidan qo'riqlanmoqda.
❌ Aks holda, biron-bir bo'limda qizil belgisi bo'lsa, demak, o'sha qism ishlamayapti (4-rasm). Ishlatish uchun Turn on tugmasini bosish kifoya.
🔍 Agar kompyuteringizni virus uchun tekshirmoqchi bo'lsangiz, Virus & threat protection bo'limiga o'ting va Quick scan tugmasini bosing. Qisqa vaqt ichida kompyuteringiz tekshiriladi va natijalar ko'rsatiladi.
👉🏼Birinchi raqamli Windows Blog | #foydali / #virus
Malware - nima?
ℹ️Malware (kengaytmasi: malicious software; o'zbekchada: zararli dasturiy ta'minot) bu kompyuterga, serverga yoki kompyuter tarmog'iga zarar yetkazish uchun qasddan ishlab chiqilgan har qanday dasturiy ta'minotdir.
🦠Malware - kompyuter viruslari, worm-lar, troyan viruslari, ransomware, spyware, adware-larning "otasidir", ya'ni yuqorida sanab o'tilganlarning hammasi umumiy qilib malware deyiladi.
☠️Malware barcha ma'lumotlarni, o'g'irlashdan tortib to butun tizimlar yoki qurilmalarni buzishgacha bo'lgan har xil xavfli ishlarni amalga oshirishi mumkin.
🛡Malware-lardan himoyalanish foydalanuvchi hushyorligi va u ishlatadigan himoya vositalariga bog'liqdir.
📩 Zararli dasturlarni tarqatuvchilar o'z o'ljalarini "Siz iPhone X yutub oldingiz. Olish uchun bu yerga o'ting" yoki "Falon brenddan aksiya" deb o'zlariga jalb qiladilar.
P.S.: Shunday ekan har xil yolg'onlarga aldanmang,tekin pishloq faqat qopqonda bo'ladi.
👉🏼Birinchi raqamli Windows Blog | #virus / #foydali
🛡 Dunyodagi eng mehribon virus aniqlandi:
Salom, men — Albaniya kompyuter virusiman.
Afsuski, mamlakatimda texnologiyalar yomon rivojlanganligi sababli, kompyuteringizga zarar yetkaza olmayman.
Iltimos, muhim fayl va papkalaringizni o‘zingiz qo‘lda o‘chirib tashlang. Va meni elektron pochta orqali do‘stlaringizga yuboring.
Hamkorlik uchun rahmat!
Eng yaxshi tilaklar bilan, sizning Albaniya virusingiz.
➡️#virus#kayfiyat | Birinchi raqamli IT-Blog