TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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

Резултати

Пронајдени 11 слични објави

Пребарај: #狼

当前筛选 #狼清除筛选
狗推交流内涵段子

@TGNH3 · Post #2651 · 25.08.2022 г., 18:40

#狼🐺幼崽 ➖➖➖➖➖➖➖➖➖➖ 🏌️爱游戏 乐鱼 环球小猪一直等你 55%+流水 人头费300无上限 最强扶持可达世界杯之后 💘💘💘💘

Hashtags

无损音乐分享频道

@d_wusun · Post #5945 · 28.03.2026 г., 09:56

名称:齐秦 - 1987年专辑 - 狼Ⅰ Flac 描述:齐秦(Chyi Chin),1960年1月12日出生于中国台湾省台中市,华语流行乐男歌手、音乐制作人、词曲作者、演员,齐豫的弟弟,毕业于世新大学。 1.齐秦 - 狼 (I) 2.齐秦 - 独行 3.齐秦 - 狂流 4.齐秦 - 自己的沙场 5.齐秦 - 价值 6.齐秦 - 冬雨 7.齐秦 - 寻 8.齐秦 - 昨天的太阳 9.齐秦 - 花祭 10.齐秦 - 大约在冬季 链接:https://pan.quark.cn/s/e03d83803708 📁 大小:241MB 🏷 标签:#齐秦#狼Ⅰ #音乐#无损音乐#猪儿虫

生物医学科技前线

@sci_feed · Post #4465 · 20.03.2026 г., 03:00

科学家以为乌鸦跟狼一起觅食,结果却是错了 研究人员通过跟踪黄石公园中的乌鸦和狼,发现乌鸦并不是跟随狼觅食,而是通过学习地形的模式,记住狼捕猎的区域,直接飞往这些地方,甚至从远处飞来,展现出它们的高智商。 来源: ScienceDaily | 阅读全文 发布时间: 2026-03-20 09:52 GMT+8(北京时间) #乌鸦#狼#黄石公园#觅食#地形模式