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

Резултати

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

Пребарај: #bringthemallback

当前筛选 #bringthemallback清除筛选
(葵涌邨)梁錦威資訊頻道

@kc_leungkamwai · Post #1676 · 19.03.2021 г., 09:42

【12港人情況更新】 早前,李宇軒、張俊富、張銘裕、嚴文謙、李子賢、郭子麟、鄭子豪及 黃偉然8名港人在中國被判監7個月。而在3月22日,他們將刑滿並移交香港。預計8名港人會即時還押,部份案件更要排期至2023年審理。 黃臨福及廖子文早前已在壁屋監獄還押。喬映瑜(判監2年)及鄧棨然(判監3年)現正在中國服刑。 懇請各位繼續關注12港人。 #save12hkyouths #BringThemALLBack

港島西。Channel

@islandwest84 · Post #39428 · 22.08.2022 г., 13:18

【喬映瑜回港】 喬映瑜今日(8月22日)從廣州白雲區女子監獄刑滿回港,被押至天水圍警署由香港警方看管。 喬映瑜精神不俗,家屬感謝各界兩年來的關注和支持。家屬現時沒有、亦無意眾籌,並已為喬映瑜安排代表律師。如有更新,家屬會透過本專頁向大家發佈。 另外,鄧棨然現於廣州從化監獄服刑,預料將於明年8月22日回港。家屬早前呼籲市民一同寄信予鄧棨然,詳情如下:https://www.facebook.com/groups/yanlegobrother/permalink/1323064294891242/;其他有關鄧棨然的消息,可參閱由其弟管理的群組:https://www.facebook.com/groups/yanlegobrother。 謝謝各位的同行和勉勵,期待所有香港人回家的一天 🙌🏼 #save12hkyouths#BringThemALLBack

香城Online 系統公告

@hkonline2 · Post #2273 · 28.03.2021 г., 23:12

12港人送中︱李宇軒還柙小欖精神病治療中心 懲教署「神秘組」看管 【蘋果日報】「12港人案」的8名被送中港人上周一(22日)在內地完成服刑後被移交香港,但事隔1星期,有家屬控訴「香港故事」成員李宇軒仍然下落不明,連日來向懲教署總部、警方等多個部門查詢都不得要領。據了解,李宇軒正被還柙在小欖精神病治療中心,屬高度設防院所,由院所內俗稱「神秘組」的懲教人員負責,現正被單獨囚禁。 知情人士稱,由「神秘組」負責李宇軒的安排,相信是為了避免李對外透露於內地審訊和收監過程,「驚佢亂講嘢」,故盡量封鎖他和其他囚犯和職員接觸的機會;至於李宇軒未來的看管安排,知情人士稱由於涉及司法程序,暫時未有詳情。有消息指,李被警方送抵小欖當日,收押室更需預早「清場」,保密程度十分高。 另有消息指,李宇軒抵港後健康狀況良好,思維清晰,暫不需律師代表,至於是否「被放棄」與親友會面,該人士說:「好多犯見完警察後,都會話唔需要通知家人。」(全文) #20210329新聞#save12hkyouths#BringThemALLBack

港島西。Channel

@islandwest84 · Post #39315 · 27.07.2022 г., 00:03

然媽媽: 呢封信第二次打回頭,冇呢個人,好擔心佢 同一封信,寄咗兩次,都話無人領取!!! 姐係點,第一次當寫錯地址,第二次係咩原因?😭😭😭😭 打完電話又話要問,叫我等。 唔通真係要上訪? #save12#save12hkyouths#鄧棨然#bringthemallback yanlegobrother