@lwdhezu · Post #6419 · 14.09.2022 г., 15:13
合租:#Friday 价格:季付35元 车主:@GAIofficial 详情:主打韩剧日剧,有中文字幕,观看需台湾节点
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
Пребарај: #friday
@lwdhezu · Post #6419 · 14.09.2022 г., 15:13
合租:#Friday 价格:季付35元 车主:@GAIofficial 详情:主打韩剧日剧,有中文字幕,观看需台湾节点
Hashtags
@learnRCRussian · Post #5670 · 07.11.2025 г., 19:42
Всем отличных выходных! #Friday 😎RCR | Support | Boost
Hashtags
@learnRCRussian · Post #5459 · 19.09.2025 г., 15:00
❤Отличных выходных, товарищи! #Friday 😎RCR | Support | Boost
Hashtags
@SweetShareChannel · Post #473 · 20.04.2023 г., 05:05
//SweetShare共享请求: 平台:#friDay 价格:27/季/人 台区流媒体 FriDay,主打韩剧,附有韩影日剧动漫等,两人车缺1人,上车前需预先注册登录好账号(使用facebook登入,独立账号,邀请制),限台湾节点 车牌:蒙RR5X2K 上车请联系:@SweetTicketsBot
Hashtags
@SweetShareChannel · Post #442 · 04.02.2023 г., 15:15
//SweetShare共享请求: 平台:#Friday 价格:21/季/人 备注: 台湾流媒体 FriDay,主打韩剧,附有韩影日剧动漫等,目前可以Facebook登入 自备账号 拉你进家庭共享 确定能用再来 翻车按比例退款 车牌:新H7AWV8 上车请联系:@SweetTicketsBot
Hashtags
@SweetShareChannel · Post #71 · 29.05.2022 г., 08:09
//SweetShare共享请求: 平台:#Friday 影音 价格:28/季/人 联系: @yyds_gyh 备注:招1人,需自行登入fb账号后拉你共享。最多两台设备,同时观看限一个屏幕。土区bug翻车按月退款,下车不退。上车请私信
Hashtags
@customs_intel_ru · Post #70 · 19.12.2025 г., 12:44
Венера Мегеровна сегодня отправляется на выездную проверку в офис КВТ, а вместо нее на duty today предновогодняя Венера образца 2022 года. О результатах корпоративной проверки сообщим дополнительно. #friday
Hashtags
@learnRCRussian · Post #6237 · 27.02.2026 г., 19:37
Состояние в пятницу... Condition on Friday... 😉А у вас как дела, товарищи? #Friday #just_cats 🟠RCR | Support | Boost
Hashtags
@learnrcrussian · Post #4882 · 20.06.2025 г., 15:00
😏Do you know why Friday in Russia is sometimes called: • Пятница-развратница [pyatnitsa-razvratnitsa] SLT: Friday-Seductress, Friday-Debauchery? 🔻It's the fault of the ancient Slavs: Friday was the day of the goddess of love, Makosh, and among the people, it was a time for festivities before Saturday's fast. 🔻Later, fairs, merriment, and wine were added... and that's how it stuck! #Friday #brief_and_interesting 😎RCR | Support | Boost
Hashtags
@odysseyfeed · Post #35922 · 15.04.2026 г., 16:56
#AnimeRelease#friDay 🍥最强王者的第二人生 Season: 2 | Episode: 3/12 Genres: 动画, 动作冒险 Rating:Bangumi (4.4) Source: WEBDL-1080p | 1.54 GB Channel:@Odyssey+
Hashtags
@odysseyfeed · Post #35912 · 14.04.2026 г., 13:44
#AnimeRelease#friDay 🍥身为悲剧始作俑者的最强邪恶BOSS女王为民竭心尽力 Season: 2 | Episode: 2/12 Genres: 动画, 科幻奇幻 Rating:Bangumi (5.4) Source: WEBDL-1080p | 1.60 GB Channel:@Odyssey+
Hashtags
@odysseyfeed · Post #35905 · 13.04.2026 г., 05:21
#AnimeRelease#friDay 🍥夜樱家的大作战 Season: 2 | Episode: 1/2 Genres: 动画, 喜剧, 动作冒险 Rating:Bangumi (6.3) Source: WEBDL-1080p | 1.64 GB Channel:@Odyssey+
Hashtags