Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
👷♀️Eshik va oyna oʻrinlari burchaklarida yoriqlar hosil boʻlmasligi uchun burchaklarda gipskartonni biriktirmaslik zarur.
Eshik va deraza oʻrinlarining turli tomonlariga har bir qatlamda siljitilgan kamida 15 sm “bayroqcha” oʻrnating. 👌
Barcha burchaklar, jumladan shiftni eslab qolish va ularga aynan bir xil ishlov berish muhimdir, chunki bu bosim toʻplanadigan joylardir.
Toʻgʻri qurish taʼmirni yangidek saqlash va eshik yoki derazani har safar yopganda qayta tuzatmaslik imkonini beradi.😊
Sifatli materiallardan foydalaning!
KNAUFdan foydalaning!
- - - - -
👷♀️Для предотвращения трещин на углах дверных и оконных проемов необходимо избегать стыков гипсокартона на углах.
Обязательно устанавливайте «флажок», не менее 15 см, смещенный на каждом слое в разные стороны проема.👌
Важно помнить обо всех углах, включая потолок, и выполнять их аналогичным образом, так как это место концентрации напряжений.
Правильный монтаж позволит сохранить ремонт свежим и не переделывать его при каждом закрытии двери или окна.😊
Используйте качественные материалы!
Используйте КНАУФ!
#knaufuzbekistan
#gipskarton
👷♀️Gipskartondan pardevor yoki shift oʻrnatganda, yoriqlar paydo boʻlish xavfini qanday kamaytirish mumkin?
Bir-ikkita majburiy qoidalar quyidagicha:
▫️Gorizontal choklar kamida 400 mm siljitilishi kerak;
▫️Vertikal birikish joylari ustun qadamiga siljitiladi. Shiftdagi qoplamalar qoplamaning 1/2 kengligiga siljitiladi.
Qoidalarga har bir qatlamda va pardevorning ikki tomonida ham amal
qilinishi kerak.
Batafsil: https://knauf.uz/qr/rWmHNJlx
Sifatli materiallardan foydalaning!
KNAUFdan foydalaning!
- - - - -
👷♀️Как уменьшить риск возникновения трещин при монтаже перегородки или потолка из гипсокартона?
Парочка обязательных правил:
▫️Горизонтальные стыки должны быть смещены не менее, чем на 400 мм;
▫️Вертикальные стыки смещаются на шаг стоек. Листы на потолке смещаются на 1/2 ширины листа.
Правила должны соблюдаться как на каждом слое, так и с каждой стороны перегородки.
Используйте качественные материалы!
Используйте КНАУФ!
Подробнее: https://knauf.uz/qr/rWmHNJlx
👍 Social
#knaufuzbekistan
#gipskarton
👷♀️Eshik va oyna oʻrinlari burchaklarida yoriqlar hosil boʻlmasligi uchun burchaklarda gipskartonni biriktirmaslik zarur.
Eshik va deraza oʻrinlarining turli tomonlariga har bir qatlamda siljitilgan kamida 15 sm “bayroqcha” oʻrnating. 👌
Barcha burchaklar, jumladan shiftni eslab qolish va ularga aynan bir xil ishlov berish muhimdir, chunki bu bosim toʻplanadigan joylardir.
Toʻgʻri qurish taʼmirni yangidek saqlash va eshik yoki derazani har safar yopganda qayta tuzatmaslik imkonini beradi.😊
Sifatli materiallardan foydalaning!
KNAUFdan foydalaning!
- - - - -
👷♀️Для предотвращения трещин на углах дверных и оконных проемов необходимо избегать стыков гипсокартона на углах.
Обязательно устанавливайте «флажок», не менее 15 см, смещенный на каждом слое в разные стороны проема.👌
Важно помнить обо всех углах, включая потолок, и выполнять их аналогичным образом, так как это место концентрации напряжений.
Правильный монтаж позволит сохранить ремонт свежим и не переделывать его при каждом закрытии двери или окна.😊
Используйте качественные материалы!
Используйте КНАУФ!
#knaufuzbekistan
#gipskarton
🧐Namlikka chidamli gipskarton nima uchun standart gipskartonga qaraganda qimmatroq ekanligini bilmoqchimisiz?
👌Videomizda biz uning o'ziga xos xususiyatlarini batafsil ko'rsatib beramiz.
👍Bu turdagi gipskarton qurilish bozorlarida o'zining "muqovasiga" mos kelishini tekshirishning oson va tezkor usuli (namlikka chidamli gipskarton yashil kartonga o'ralgan bo'ladi).
❗️Shuni esda tutingki, nomunosib qurilish materiallarini sotib olish - xarajatlarning ko'payishiga va uyingiz shinamliligining yo'qolib borishiga olib kelishi mumkin.
- - - - -
🧐Хотите узнать, почему влагостойкий гипсокартон стоит дороже стандартного?
👌В нашем видео мы наглядно покажем его отличительные свойства.
👍Это легкий и быстрый способ проверить соответствует ли гипсокартон на стройбазаре своей «обложке» (влагостойкий гипсокартон обернут в зелёный картон).
❗️Помните, что неподходящие строительные материалы это не только увеличение расходов на ремонт, но и снижение комфорта вашего жилья.
#knaufuzbekistan#gipskarton
👷♀️Eshik va oyna oʻrinlari burchaklarida yoriqlar hosil boʻlmasligi uchun burchaklarda gipskartonni biriktirmaslik zarur.
Eshik va deraza oʻrinlarining turli tomonlariga har bir qatlamda siljitilgan kamida 15 sm “bayroqcha” oʻrnating. 👌
Barcha burchaklar, jumladan shiftni eslab qolish va ularga aynan bir xil ishlov berish muhimdir, chunki bu bosim toʻplanadigan joylardir.
Toʻgʻri qurish taʼmirni yangidek saqlash va eshik yoki derazani har safar yopganda qayta tuzatmaslik imkonini beradi.😊
Sifatli materiallardan foydalaning!
KNAUFdan foydalaning!
- - - - -
👷♀️Для предотвращения трещин на углах дверных и оконных проемов необходимо избегать стыков гипсокартона на углах.
Обязательно устанавливайте «флажок», не менее 15 см, смещенный на каждом слое в разные стороны проема.👌
Важно помнить обо всех углах, включая потолок, и выполнять их аналогичным образом, так как это место концентрации напряжений.
Правильный монтаж позволит сохранить ремонт свежим и не переделывать его при каждом закрытии двери или окна.😊
Используйте качественные материалы!
Используйте КНАУФ!
#knaufuzbekistan
#gipskarton
👷♀️Gipskartondan pardevor yoki shift oʻrnatganda, yoriqlar paydo boʻlish xavfini qanday kamaytirish mumkin?
Bir-ikkita majburiy qoidalar quyidagicha:
▫️Gorizontal choklar kamida 400 mm siljitilishi kerak;
▫️Vertikal birikish joylari ustun qadamiga siljitiladi. Shiftdagi qoplamalar qoplamaning 1/2 kengligiga siljitiladi.
Qoidalarga har bir qatlamda va pardevorning ikki tomonida ham amal
qilinishi kerak.
Sifatli materiallardan foydalaning!
KNAUFdan foydalaning!
Batafsil: https://knauf.uz/qr/rWmHNJlx
- - - - -
👷♀️Как уменьшить риск возникновения трещин при монтаже перегородки или потолка из гипсокартона?
Парочка обязательных правил:
▫️Горизонтальные стыки должны быть смещены не менее, чем на 400 мм;
▫️Вертикальные стыки смещаются на шаг стоек. Листы на потолке смещаются на 1/2 ширины листа.
Правила должны соблюдаться как на каждом слое, так и с каждой стороны перегородки.
Используйте качественные материалы!
Используйте КНАУФ!
Подробнее: https://knauf.uz/qr/rWmHNJlx
#knaufuzbekistan
#gipskarton
🧐Namlikka chidamli gipskarton nima uchun standart gipskartonga qaraganda qimmatroq ekanligini bilmoqchimisiz?
👌Videomizda biz uning o'ziga xos xususiyatlarini batafsil ko'rsatib beramiz.
👍Bu turdagi gipskarton qurilish bozorlarida o'zining "muqovasiga" mos kelishini tekshirishning oson va tezkor usuli (namlikka chidamli gipskarton yashil kartonga o'ralgan bo'ladi).
❗️Shuni esda tutingki, nomunosib qurilish materiallarini sotib olish - xarajatlarning ko'payishiga va uyingiz shinamliligining yo'qolib borishiga olib kelishi mumkin.
- - - - -
🧐Хотите узнать, почему влагостойкий гипсокартон стоит дороже стандартного?
👌В нашем видео мы наглядно покажем его отличительные свойства.
👍Это легкий и быстрый способ проверить соответствует ли гипсокартон на стройбазаре своей «обложке» (влагостойкий гипсокартон обернут в зелёный картон).
❗️Помните, что неподходящие строительные материалы это не только увеличение расходов на ремонт, но и снижение комфорта вашего жилья.
#knaufuzbekistan#gipskarton
👷♀️Xonada yong'in chiqishidan hech kim sug'urtalanmagan.
Holat va vaziyat har xil bo'lishi mumkin.
Ammo chinakam olovbardosh qurilish materiallaridan foydalanish alanga olayotgan binodan sog'-omon chiqish uchun sizga imkon yaratadi.
❗️Bunday holatda har bitta soniya hisobda boʻladi.
KNAUF yaratgan va ochiq alangaga nisbatan oshirilgan qarshilik darajasi ega mahsulotlardan biri – olovbardosh KNAUF-plita (GQP-DF) hisoblanadi.👍
U yong'inga qarshi KM2 xavfsizlik sinfiga ega bo'lib, uni pardevor komplekt tizimlari tarkibida (masalan S 112 va S 113) odam gavjum joylarda (savdo markazlari yoki ko'p qavatli obyektlar) yong'in paytida insonlarning hayotiga bo'ladigan xavf-xatarni kamaytirish uchun ishlatish mumkin.👌
GQP-DF markirovkasining rangi: qizil/qora
Sifatli materiallardan foydalaning.
KNAUFʼdan foydalaning.
- - - - -
👷♀️Никто не застрахован от возгорания в помещении.
Разные бывают случаи и обстоятельства.
Но шанс выбраться из пылающего здания – это в том числе и выбор настоящих огнестойких строительных материалов, которые дадут вам время на спасение.
❗️Время, необходимое тогда, когда счет идет на секунды.
Одним из продуктов КНАУФ, имеющим повышенный предел противостояния открытому пламени, является КНАУФ-плита огнестойкая (ГСП-DF).👍
Обладает классом пожарной безопасности КМ2. В составе комплектной системы перегородок (например, С 112 и С 113) плита подходит для использования в местах массового скопления людей (торговые центры или объекты с большой этажностью) для снижения риска угрозы жизни людей в случаях воспламенения.👌
Цвет маркировки ГСП-DF: красный/черный
Используйте качественные материалы.
Используйте КНАУФ.
#knaufuzbekistan#gipskarton
🧐Namlikka chidamli gipskarton nima uchun standart gipskartonga qaraganda qimmatroq ekanligini bilmoqchimisiz?
👌Videomizda biz uning o'ziga xos xususiyatlarini batafsil ko'rsatib beramiz.
👍Bu turdagi gipskarton qurilish bozorlarida o'zining "muqovasiga" mos kelishini tekshirishning oson va tezkor usuli (namlikka chidamli gipskarton yashil kartonga o'ralgan bo'ladi).
❗️Shuni esda tutingki, nomunosib qurilish materiallarini sotib olish - xarajatlarning ko'payishiga va uyingiz shinamliligining yo'qolib borishiga olib kelishi mumkin.
- - - - -
🧐Хотите узнать, почему влагостойкий гипсокартон стоит дороже стандартного?
👌В нашем видео мы наглядно покажем его отличительные свойства.
👍Это легкий и быстрый способ проверить соответствует ли гипсокартон на стройбазаре своей «обложке» (влагостойкий гипсокартон обернут в зелёный картон).
❗️Помните, что неподходящие строительные материалы это не только увеличение расходов на ремонт, но и снижение комфорта вашего жилья.
#knaufuzbekistan#gipskarton
Uyingiz yoki ofisda siz yaratadigan goʻzallikning astar tomoni – aloqa tizimlari. 🧐
Shunday emasmi?
Hisoblagichlar, joʻmraklar, kabellar va yuqoridagi qoʻshnilardan oʻtadigan yana qandaydir narsalar...
Sizga bu holat tanishmi?
Batafsil👉https://bit.ly/reviziya-lyuklar
- - - - -
Изнанка всей той красоты, которую вы создаете дома или в офисе, это коммуникационные системы.🧐
Согласны?
Эти счетчики, краники, кабели и непонятно что льется от соседей сверху…
Знакомо?
Подробнее👉https://bit.ly/revizionniye-lyuki
YouTube
Instagram
Facebook
#gipskarton#KNAUF#knaufuzbekistan
Zamon bilan hamnafasmisiz?
Unda binolar pardozidagi eng so'nggi urf bo'lgan yo'nalish – xaytek sizga albatta yoqadi.👌
Texnologiya bilan uygʻunlik, funksionallik, to'g'ri shakllar va yuzalar.
Bunda eng sifatli pardoz materiallari, ilg'or texnologiyalar va qimmat yakuniy ishlov qoplamalaridan foydalaniladi.
Batafsil👉https://telegra.ph/Zamon-bilan-hamnafasmisiz-07-24
- - - - -
Вы модник или модница?
Тогда Вам должно понравиться самое трендовое направление в отделке помещений - хайтек.👌
Технологичность, функциональность, прямые формы и поверхности.
Здесь используются самые качественные отделочные материалы, передовые технологии и дорогостоящие финишные покрытия.
Подробнее👉https://telegra.ph/Vy-modnik-ili-modnica-07-24
YouTube
Instagram
Facebook
#gipskarton#KNAUF#knaufuzbekistan