@Hezu2 · Post #68918 · 19.05.2026 г., 08:45
#Netflix🇭🇰香港,4K方案,季付63元,5人车补1人,只招长期车友,短期勿扰,跳车不退,翻车按比例退尾款。UID:5252630170 【状态】现已满员
Hashtags
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
Пребарај: #netflix
@Hezu2 · Post #68918 · 19.05.2026 г., 08:45
#Netflix🇭🇰香港,4K方案,季付63元,5人车补1人,只招长期车友,短期勿扰,跳车不退,翻车按比例退尾款。UID:5252630170 【状态】现已满员
Hashtags
@Hezu2 · Post #68904 · 18.05.2026 г., 12:41
#Netflix🇺🇸美国,美国区4K,70一季/130半年,5人车补3人,禁Apple TV ps5游戏设备,翻车按比例退,跳车不退。UID:456193055
Hashtags
@Hezu2 · Post #68898 · 18.05.2026 г., 06:12
#Netflix🇵🇭菲律宾,4K方案,季付51元,5人车补2人,推荐新加坡节点,不要频繁换节点,不可使用appletv 安卓tv,游戏机,只招长期车友,短期勿扰,翻车按比例退余款。UID:770514183
Hashtags
@Hezu2 · Post #68893 · 18.05.2026 г., 01:13
#Netflix🇭🇰香港,4K方案,64,5人车补2人,🈲Apple TV,安卓盒子,游戏机等触发同户的设备,跳车不退,翻车按比例退款,仅需长期稳定车友。UID:8265663658 【状态】现已满员
Hashtags
@Hezu2 · Post #68883 · 17.05.2026 г., 05:37
#Netflix🇺🇸美国,4K方案,季付68,5人车补4人,禁Apple TV/安卓tv,ps5等游戏设备,翻车按比例退,跳车不退 ,来长期车友。UID:7131311998
Hashtags
@Hezu2 · Post #68873 · 16.05.2026 г., 08:15
#Netflix🇭🇰香港,4K方案,季付63元,5人车补3人,需固定节点(香港)观看,🈲Apple TV,安卓盒子,游戏机等触发同户的设备,跳车不退,翻车按比例退款,仅需长期稳定车友,拉微信群。UID:891737776 【状态】现已满员
Hashtags
@Hezu2 · Post #68871 · 16.05.2026 г., 08:15
#Netflix🇲🇴澳门,4K,季付60,5人车补1人,固定香港、新加坡节点,限iPhone、ipad、网页使用,禁止使用其他设备及乱飞节点,短期勿扰。UID:1192698766
Hashtags
@Hezu2 · Post #68858 · 15.05.2026 г., 11:49
#Netflix🇧🇿伯利兹,4K 方案,寄付 45 元,5人车补3人,只招长期车友,禁止 tv 游戏机电视棒登录,短期勿扰,跳车不退,翻车按比例退尾款。UID:508701999 【状态】现已满员
Hashtags
@Hezu2 · Post #68857 · 15.05.2026 г., 11:49
#Netflix🇳🇬尼日利亚,4K方案,季付40,5人车补4人,禁TV和游戏机,跳车不退,翻车按比例退尾款。UID:2107713456 【状态】现已满员
Hashtags
@Hezu2 · Post #68856 · 15.05.2026 г., 11:28
#Netflix🇺🇸美国,4K无广告,70一季/130半年,5人车补3人,禁Apple TV ps5游戏设备,翻车按比例退,跳车不退。UID:456193055
Hashtags
@Hezu2 · Post #68846 · 14.05.2026 г., 09:18
#Netflix🇭🇰香港,4K方案,季付63元,5人车补1人,只招长期车友,短期勿扰,跳车不退,翻车按比例退尾款。UID:5522824100
Hashtags
@Hezu2 · Post #68840 · 14.05.2026 г., 07:02
#Netflix🇺🇦乌克兰,4K方案,季付60元,5人车补1人,固定香港IP使用,禁用TV/盒子/游戏机等触发同戶设备,仅支持手机/平板/网页观看,禁止共享,限一部设备同时观看,建VX群,跳车不退,翻车比例退尾款,招长期车友。UID:5696073107 【状态】现已满员
Hashtags