@moepic · Post #51284 · 31.01.2024 г., 14:39
title: 無題 author: #Ryan tags: #落書き#女の子#ブルーアーカイブ#A.R.O.N.A #アロナ(ブルーアーカイブ) #プラナ(ブルーアーカイブ) #ブルーアーカイブ10000users入り url: pixiv.net/i/106020469
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
Пребарај: #ryan
@moepic · Post #51284 · 31.01.2024 г., 14:39
title: 無題 author: #Ryan tags: #落書き#女の子#ブルーアーカイブ#A.R.O.N.A #アロナ(ブルーアーカイブ) #プラナ(ブルーアーカイブ) #ブルーアーカイブ10000users入り url: pixiv.net/i/106020469
@sstickersssss · Post #861 · 13.02.2021 г., 17:28
Kakao Friends👇🏻👇🏻 🌐https://t.me/addstickers/Kakao_costume_iuplus 🌐https://t.me/addstickers/KaKao_CheerUp_KM 🌐https://t.me/addstickers/kakao_unit_km 🌐https://t.me/addstickers/KakaofriendsPack (會動的animated gifs) 🌐https://t.me/addstickers/kakaolittle 🌐 KAKAO FRIENDS Jay-G , MUZI&CON and APEACH 🌐 KakaoTalk Emoticons 🌐https://t.me/addstickers/kakao_friends_1_by_StickersCloudBot 🌐https://t.me/addstickers/kakokaka Kakao Ryan👇🏻👇🏻 🌐https://t.me/addstickers/kakaofriendsat_real_ryan_by_StickersCloudBot 🌐Ryan Kakaotalk by @Nyp_sticker 🌐https://t.me/addstickers/helloRyan 🌐https://t.me/addstickers/kakao_lion 🌐https://t.me/addstickers/kakao_friends_ryan_1_by_StickersCloudBot Kakao Muzi👇🏻👇🏻 https://t.me/addstickers/kakao_muzi Kakao Apeach👇🏻👇🏻 KakaoTalk apeach KAKAO Friends Neo x Frodo #kakaofriends#apeach#Con#Neo#muzi #ryan#kakao#動圖#라이언
@UltimoraPOlitics · Post #38277 · 04.05.2022 г., 10:07
#Elezioni#USA#Senate#Ohio Risultati definitivi: #Primarie#R|ECR: J.D. #Vance: 32,2% Josh #Mandel: 23,9% Matt #Dolan: 23,3% Mike #Gibbons: 11,7% Jane #Timken: 5,9% Mark #Pukita: 2,1% Neil #Patel: 0,9% Primarie #D|Centro-sinistra: Tim #Ryan: 69,7% Morgan #Harper: 17,7% Traci #Johnson: 12,6% @UltimoraPolitics