@BGP_Channel · Post #4900 · 20.02.2021 г., 16:43
#MDSS#VPN#SSR 西北 #电信 500M V4mini套餐 网址:https://mdss.iij.kr TG公告板: https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/x1Ozck2
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
Пребарај: #mdss
@BGP_Channel · Post #4900 · 20.02.2021 г., 16:43
#MDSS#VPN#SSR 西北 #电信 500M V4mini套餐 网址:https://mdss.iij.kr TG公告板: https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/x1Ozck2
@BGP_Channel · Post #4812 · 03.02.2021 г., 13:27
#MDSS#VPN#SSR 西北 #电信 500M V4mini目前只有年付 网址:https://mdss.iij.kr TG公告板: https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/G9eklFw
@BGP_Channel · Post #4702 · 15.01.2021 г., 14:42
#MDSS#VPN#SSR 西北 #电信 500M V4mini套餐不确定有没有被限速 网址:https://mdss.iij.kr TG公告板: https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/0x9en1J
@BGP_Channel · Post #4605 · 30.12.2020 г., 17:24
#MDSS#VPN#SSR 西北 #电信 500M 网址:https://mdss.iij.kr TG公告板:https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/9I7p5fm
@BGP_Channel · Post #4578 · 27.12.2020 г., 14:48
#MDSS#VPN#SSR 安徽 #电信 500M 网址:https://mdss.iij.kr TG公告板:https://t.me/Mdsscloud TG群组: https://t.me/mdssios Twitter: https://s.4a.hk/ghA8LW7
@BGP_Channel · Post #4345 · 03.12.2020 г., 09:39
#MDSS#VPN#SSR 新疆 #电信 500M 网址:https://mdss.iij.kr Tg公告板:https://t.me/Mdsscloud Tg群组: https://t.me/mdssios
@BGP_Channel · Post #5030 · 07.04.2021 г., 15:12
#MDSS#BGP CNGZ-QCloud #VPN#SSR 官网 mdss.cloud Twitter: https://s.4a.hk/pV3O7xO
@BGP_Channel · Post #4975 · 18.03.2021 г., 12:49
#MDSS#SSR#BGP CNBJ-AWS #VPN mdss.cloud
@AirportAnalysis · Post #1880 · 25.01.2025 г., 10:35
#MDSS#MDSSCLOUD 官网: https://mdss.369.cyou
Hashtags
@BGP_Channel · Post #5090 · 29.04.2021 г., 15:18
#MDSS#南方电信 200M #VPN
@BGP_Channel · Post #4898 · 20.02.2021 г., 14:00
#MDSS#BGP#长城宽带#SSR#VPN 广东长城宽带100M 梦迪yyds 官网 mdss.cloud Twitter: https://s.4a.hk/PQJ51Vp
@airportroster · Post #674 · 01.04.2022 г., 15:57
⏱ 测速频道常见机场 ⏱ 这里是TG机场测速频道常见机场,收录标准为一个月内至少有五次测速,不代表推荐,代表着机场测速热度,此页面长期更新...... #prpr#Immtelecom #Texon#Bywave #Catnet#Flowercloud #MDSS#Creamdata #Nexitally #Godetia#莉莉 #白月光#nanoport #话啦啦 #跑路云#Miaona #Gacloud #可莉#Maying (魅影极速) #sslinks #Dlercloud#Fishport #Ytoo #Amytelecom #infiniport #WavesLink #忽悠云服务 #猫熊 #Bitznet 上次更新时间: 2022.08.12