TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

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

Резултати

Пронајдени 21 слични објави

Пребарај: #costa

当前筛选 #costa清除筛选
Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #52166 · 11.03.2026 г., 10:29

Enrico #Costa (#FI): ""Tanto dopo il referendum con voi del Foglio faremo i conti" "nel senso che tireremo una rete". Con questa frase ad una giornalista il dottor Gratteri si conferma il miglior testimonial per il Si'." @UltimoraPolitics24

Hashtags

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #44321 · 13.11.2023 г., 08:24

❗️🇵🇹 #Portogallo — Clamoroso errore delle autorità giudiziarie: l'intercettazione telefonica che avrebbe spinto ad aprire un'indagine per sospetta corruzione di António #Costa si riferirebbe in realtà al suo ministro dello Sviluppo economico, António Costa…

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #44320 · 12.11.2023 г., 13:19

❗️🇵🇹#Portogallo — Clamoroso errore delle autorità giudiziarie: l'intercettazione telefonica che avrebbe spinto ad aprire un'indagine per sospetta corruzione di António #Costa si riferirebbe in realtà al suo ministro dello Sviluppo economico, António Costa Silva. Si tratterebbe dunque di un caso di omonimia che ha provocato un grave errore nella trascrizione agli atti. Il primo ministro a causa dell'indagine, per cui si è sempre dichiarato estraneo, si è però dimesso e il presidente ha sciolto le Camere @UltimoraPolitics

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #44304 · 07.11.2023 г., 14:12

❗️🇵🇹 BREAKING — #Portogallo, si dimette il primo ministro socialista António #Costa: è indagato per corruzione L'indagine riguarda irregolarità nella gestione da parte del governo su progetti di estrazione del litio e di idrogeno nel Paese @UltimoraPolitics

Libertà è ragione

@libertaeragione · Post #4044 · 12.11.2023 г., 13:20

#Portogallo Secondo la CNN, il Pubblico Ministero ha commesso un errore nella trascrizione di un'intercettazione telefonica tra il consulente di Start Campus Lacerda Machado e l'amministratore della stessa società Afonso Salema, sottolineando che la prima avrebbe influenzato Il Premier António #Costa (#PS|S&D), quando in realtà Lacerda Machado si riferiva al Ministro dell'Economia António #Costa Silva (PS). @OsservatorioEsteri

Libertà è ragione

@libertaeragione · Post #4035 · 07.11.2023 г., 14:31

#Portogallo Primo Ministro António #Costa (#PS|S&D): "Le mie funzioni di primo ministro non sono compatibili con i sospetti sulla mia integrità, sulla mia buona condotta e ancor meno con il sospetto di eventuali pratiche di corruzione." @OsservatorioEsteri

Ultimora.net - POLITICS 24

@Ultimorapolitics24 · Post #51920 · 12.02.2026 г., 12:06

Il deputato Enrico #Costa ha chiesto che il ministro dello Sport Andrea #Abodi venga in Aula della Camera per un'informativa urgente sul post del Pd, poi rimosso, che avrebbe utilizzato immagini delle Olimpiadi e della maglia azzurra per un invito al voto referendario. @UltimoraPolitics24

Hashtags

12
ПретходнаСтраница 1 од 2Следна