@PTerClub_RSS · Post #615618 · 16.09.2023 г., 10:12
[电视剧 (TV Series)]Shanty Town 2023 Complete 1080p NF WEB-DL H264 DDP-YingWEB[红灯陋巷 第一季 全6集 | 类型:动作 [英语|内封多字幕]][4.68 GB][2X 50%] 链接: 383300#2X50%
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
Пребарај: #2x
@PTerClub_RSS · Post #615618 · 16.09.2023 г., 10:12
[电视剧 (TV Series)]Shanty Town 2023 Complete 1080p NF WEB-DL H264 DDP-YingWEB[红灯陋巷 第一季 全6集 | 类型:动作 [英语|内封多字幕]][4.68 GB][2X 50%] 链接: 383300#2X50%
Hashtags
@PTerClub_RSS · Post #615509 · 16.09.2023 г., 07:49
[音乐 (Music)]陳政仁 Jin Chen-無名氏 2019 - FLAC 分軌[111.27 MB][2X] 链接: 383248#2X
Hashtags
@PTerClub_RSS · Post #615496 · 16.09.2023 г., 07:32
[电视剧 (TV Series)]AJ and the Queen 2020 S01 Complete 1080p NF WEB-DL H.265 10bit HDR DDP5.1-YingWEB 待定[酷妹辣皇后/AJ 与皇后 第一季 全10集 | 类型:喜剧 主演:鲁保罗/伊兹·/麦克李昂·伍德利 [英语|内封多字幕]][16.49 GB][2X] 链接: 383242#2X
Hashtags
@PTerClub_RSS · Post #615448 · 16.09.2023 г., 06:27
[动画 (Animation)]Thermae Romae Novae 2022 S01 Complete 1080p NF WEB-DL H265 10bit HDR DDP5.1-YingWEB[新罗马浴场 第一季 全11集 | 类型:喜剧 主演:津田健次郎 [日语|内封多字幕]][4.62 GB][2X] 链接: 383213#2X
Hashtags
@PTerClub_RSS · Post #615403 · 16.09.2023 г., 05:04
[音乐 (Music)]张学友-真爱国语专辑 1995 - FLAC 分軌 16bit 44.1khz[张学友-真爱 | 专辑 | 转自OpenCD][262.67 MB][2X] 链接: 383183#2X
Hashtags
@PTerClub_RSS · Post #615378 · 16.09.2023 г., 04:26
[音乐 (Music)]伍佰-风平浪静 2020 - FLAC 分轨 16bit 44.1khz[伍佰-风平浪静 | 专辑 | 转自OpenCD][60.04 MB][2X 50%] 链接: 383170#2X50%
Hashtags
@PTerClub_RSS · Post #615371 · 16.09.2023 г., 04:12
[音乐 (Music)]雷婷-梦里蓝天 2023 - WAV 整轨 16bit 44.1khz[雷婷-梦里蓝天 | 专辑 | 转自OpenCD][526.65 MB][2X] 链接: 383167#2X
Hashtags
@PTerClub_RSS · Post #615312 · 16.09.2023 г., 02:23
[电视剧 (TV Series)]Definitely Not Today 2021 S01 Complete 1080p WEB-DL 50fps H.265 10bit AAC-DBTV[今天不是最后一天 2021 [全8集] [主演: 梁靖康 / 薇薇 / 曾少宗 / 田原 / 邢瀚卿 / 李嘉灏]][4.78 GB][2X 50%] 链接: 383134#2X50%
Hashtags
@PTerClub_RSS · Post #615287 · 16.09.2023 г., 01:18
[电影 (Movie)]The Heat 2013 Unrated 1080p BluRay x264-EbP[辣手警花/The Heat/热爆MADAM(港)/麻辣娇锋(台)/都会女警花 ][12.30 GB][2X] 链接: 383126#2X
Hashtags
@PTerClub_RSS · Post #615259 · 15.09.2023 г., 23:03
[电视剧 (TV Series)]Jupiter's Legacy 2021 Complete 1080p NF WEB-DL H265 10bit HDR DDP5.1 Atmos-YingWEB[朱庇特传奇/朱庇特的遗产/朱比特传奇 第一季 全8集 | 类型:动作 主演:梅格·钱伯斯·斯蒂德尔/安娜·阿卡娜/蒂龙·本斯金 [英语|内封多字幕]][4.59 GB][2X 50%] 链接: 383118#2X50%
Hashtags
@PTerClub_RSS · Post #615234 · 15.09.2023 г., 20:49
[电影 (Movie)]CCTV6 Brave Rombardier II 2017 HDTV 1080p AVC AAC 2.0-CZ 已审[CCTV6 | 神勇投弹手2 [国语/中字]][7.76 GB][2X] 链接: 383103#2X
Hashtags
@PTerClub_RSS · Post #615209 · 15.09.2023 г., 17:27
[电视剧 (TV Series)]Delete 2023 Complete 1080p NF WEB-DL H265 10bit HDR DDP5.1-YingWEB[永久删除/删除 第一季 全8集 | 类型:剧情 主演:纳塔拉·诺帕卢塔亚朋/纳特·奇查理/萨里卡·塞思苏帕 [泰语|内封多字幕]][4.57 GB][2X] 链接: 383094#2X
Hashtags