@OUR_7_PRINCES · Post #114546 · 09.07.2025 г., 06:10
BTS WEVERSE MOMENT/FEED JIMIN 250709 JM: "ARMY birth day" Happy birthday July 9, 2025 I love you I'll work hard (on music) and return!! #twitter @OUR_7_PRINCES
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
Пребарај: #twitter
@OUR_7_PRINCES · Post #114546 · 09.07.2025 г., 06:10
BTS WEVERSE MOMENT/FEED JIMIN 250709 JM: "ARMY birth day" Happy birthday July 9, 2025 I love you I'll work hard (on music) and return!! #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114544 · 09.07.2025 г., 06:06
BTS WEVERSE MOMENTS/FEEDS V/TAEHYUNG 250709 TH: Happy ARMY Day~🩷🍾 TH: Spend today the most happily 🥳 #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114503 · 07.07.2025 г., 05:34
According to BP fans j-hope was invited to BLACKPINK’s Deadline tour today by Jisoo * the logo on the bag is her label’s logo #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114497 · 06.07.2025 г., 15:47
🐻 anyway, I contacted you (turned the live on) to talk about this 🐻 *listens closely to ARMYs shouting outside 🐻 ARMYs outside... *loud shouts from ARMYs* I think.. *laughs* I think the ARMYs outside are watching Weverse.. ehey, it's raining 🐻 when it rains... *continued shouting* 😆 🐻 I wanna go outside and be like "what's up"... but it's really dangerous so I won't do that since it's dangerous 🐻 *continued shouting* ey no, I can't 🐻 do you guys hear it? the ARMYs out there are shouting for me.. this isn't my hotel you guys, since it's not my hotel... you get it, right? #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114496 · 06.07.2025 г., 15:39
🐻 but now I don't really have any (schedule) after this, since it's the time for preparation, I need to eat and live now... my ribs were hurting today since I was hungry 🐻 look at this~ [cutely] *shows food* 🐻 should I show you this? hobi hyung shout out.. huh? *turns off camera instead of turning it back* this isn't a shout out 🐻 killing it girl~ x2 🐻😆 🐻 *bangs his foot against something* #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114465 · 05.07.2025 г., 11:34
KIM TAEHYUNG INSTA STORY UPDATE #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114463 · 05.07.2025 г., 11:32
TAEHYUNG WEVERSE LIVE “you drunk?” 🐻: YES #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114462 · 05.07.2025 г., 11:30
TAEHYUNG WEVERSE LIVE 🐻: Wait! Hold on 🐻: Guys… 🐻: Everyone… 🐻: Please talk slowly 🐻: Tell me what… what is that you want #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114460 · 05.07.2025 г., 11:28
Taehyung live translation 🐻: Good morning, everyone! 🐻: Good afternoon! 🐻: I woke up because the hotel staff came to clean everything. And because of that, I couldn’t go back to sleep. 🐻: Actually, I wanted to sleep a bit more. 🐻: I woke up earlier than expected… so… 🐻: Normally, I can sleep really well, but… I think it’s been like this since I came back from the military. 🐻: Now I wake up at the slightest noise… someone came to clean early and I woke up because of the noise. 🐻: I used to sleep so deeply, but now even a small sound wakes me up completely. Maybe it’s because of the military. 🐻: "How’s Paris?" 🐻: I loved it so much. I really loved it. 🐻: Sorry, but can we use simple English here? It’s hard for me… 🐻: Seriously, ARMYs, I’m sorry, but reading so much English is making me sleepy. 🐻: Is there a way to read this in Korean? Does Weverse have Korean translation? 🐻: This is really hard. 🐻: I love you. #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114456 · 05.07.2025 г., 11:25
KIM TAEHYUNG INSTA STORY UPDATE 🫨 The glow in the dark thing was awesome DeVialet*, nice to meet you~ ✒️* in Korean he spelled it with his name 드(뷔)알레. The correct spelling is 드비알레. It's a Bluetooth speaker. #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114441 · 04.07.2025 г., 23:09
YOONGI IS NOW A SHAREHOLDER PF MLB ATHLETICS HE WENT STRAIGHT FROM AN AMBASSADOR TO A SHAREHOLDER #twitter @OUR_7_PRINCES
Hashtags
@OUR_7_PRINCES · Post #114381 · 02.07.2025 г., 15:19
BTS has re-entered Top 50 on the Spotify’s Top Artists Chart at #49 (+5)! 🌎 CONGRATULATIONS BTS #twitter @OUR_7_PRINCES
Hashtags