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

Резултати

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

Пребарај: #nyctophobia

当前筛选 #nyctophobia清除筛选
小喵的ACG黄油 (重开版)

@xiaomiaogame · Post #3539 · 18.03.2026 г., 12:07

暗所恐惧症 暗所恐怖症 Nyctophobia 1+2+3 v0.5 官方中文版 游戏简介: 在不久的将来,被称为“虚空”的传送门在地球上释放出异形怪物。为了应对这场灾难,科学家创造了“红眼”,这是将人类胚胎与怪物DNA融合的生化战士。作为新选拔的“红眼”特工 –零雪,玩家将参与各种任务,以阻止虚空的入侵。从收容失效的实验室到剧毒的下水道,穿梭于混乱的前线。零雪是否能拯救人类免于虚空的破坏?进入黑暗,危机四伏的未知领域,异形生物在其中潜伏。 *本游戏包含性和暴力场景,以及猎奇描写。 3 v0,5更新日志 1. 为第二关添加了Boss CG 2. 为背景NPC添加了图鉴 3. 添加了第三关的早期体验版 4. 第二关增加了新敌人类型 5. 添加了新的背景NPC 6. 添加了新的玩家处决动画 7. 现在可以通过购买来切换战斗NPC(不退款) • 如果你希望自己创作的角色作为背景NPC加入游戏,可以在Pixiv上私信我。 • 姐妹小队现在可以在第二关找到。 • 前12个背景NPC现已可以解锁(如果你能找到他们的话)。 评分 作者 #GuroGameGuy #PC#ACT#官中#动态#重口 #暗所恐惧症#暗所恐怖症#Nyctophobia 下载地址