Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Marketing rejalarini ishlab chiqish va boshqarish mavzusida mahorat-darsi bo‘lib o‘tdi
🇺🇿 Biznes va Tadbirkorlik oliy maktabi tinglovchilari mehmon ma’ruzachi Kadirov Sarvar Sabirovich boshchiligida «Marketing rejalarini ishlab chiqish va boshqarish: strategiyadan amaliy natijagacha» mavzusidagi mahorat-darsida ishtirok etdilar.
Uchrashuv davomida tinglovchilar marketing rejasini to‘g‘ri tuzish bosqichlari, bozor va mijozlarni tahlil qilish usullari, marketing byudjeti samarali taqsimlash hamda KPI asosida natijalarni baholash haqida ma’lumot oldilar. Real biznes misollari orqali strategiyaning amaliy natijaga qanday aylanishini ko‘rish imkoniga ega bo‘ldilar.
Mahorat-darsi tinglovchilarga nazariy bilimni amaliy tajriba bilan bog‘lash imkonini berdi.
🇷🇺RU
🇬🇧ENG
#GSBE#GraduateSchool#Masterclass#MarketingPlan#BusinessStrategy
🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube
⚡️Hurmatli professor-o‘qituvchilar, tinglovchilar va mehmonlar!
Sizlarni “Marketing rejalarini ishlab chiqish va ularni boshqarish: strategiyadan amaliy natijagacha“ mavzusida navbatdagi mahorat-darsi uchrashuviga taklif etamiz. Dasturimiz mehmon maruzachisi ALYANS AUTO kompaniyasining marketing, savdo va servis bo‘yicha Bosh direktor o‘rinbosari - Kadirov Sarvar Sabirovich.
📌 Mahorat darsida ishtirokchilar quyidagi bilim va ko‘nikmalarga ega bo‘ladilar:
☑️ Marketing rejasini to‘g‘ri tuzish bosqichlari;
☑️Bozor va mijozlarni amaliy tahlil qilish usullari;
☑️ Marketing byudjetini samarali taqsimlash;
☑️ KPI va natijani o‘lchash mexanizmlari;
☑️ Rejani bajarishni boshqarish va nazorat qilish;
☑️ Real biznes misollari asosida tahlil va tavsiyalar.
🇺🇿 Tadbir o‘zbek tilida olib boriladi.
🗓Sana: 23-fevral, 2026-yil
⏰Vaqti: 9:00-10:30
📍Manzil: Biznes va tadbirkorlik oliy maktabi. Toshkent shahri, Mirobod tumani, Mirobod ko‘chasi, 25-uy. (5-qavat, 4-auditoriya)
☎️Telefon: +998 91 163-51-15
🇷🇺RU
🇬🇧ENG
#GSBE#GraduateSchool#Masterclass#MarketingPlan#BusinessStrategy
🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube
🚀 Nansen CEO Highlights Importance of Corporate Culture for AI Agents
PANews posted on X (formerly Twitter). Nansen CEO Alex Svanevik has emphasized the necessity of establishing a corporate culture for AI agents to enhance their collaboration within companies. According to Svanevik, relying solely on prompts and skills is insufficient for effective AI integration. He suggests that defining default behaviors, communication standards, and shared values is crucial for AI agents to work effectively alongside human teams. Svanevik believes that just as corporate culture boosts human team efficiency, it can similarly benefit AI agents.
#AI#CorporateCulture#AIAgents#Teamwork#Innovation#Leadership#BusinessStrategy#Technology#Collaboration#WorkplaceCulture
Musk's Ambition vs. Reality Check
Elon Musk emphasizes ambitious startups to change the world, yet he admits to founding zip2 for profit. To fund his dream of space travel, he aimed for quick cash during the dot-com boom, leveraging simple tech ideas. His success in early startups paved the way for SpaceX and Tesla, which he financially supported himself. The takeaway? Most need to start with smaller, realistic goals before tackling grand visions.
Key Insights:
- Musk's journey began with profit-seeking.
- Early startup success critical for later ventures.
- Most should follow the first step before the grand vision!
📉AI tokens market caps drop by $14B in three weeks, now at $6.2B.
Read more: News
#AI#Crypto#VC#Musk#Startups#SpaceX#Tesla#Entrepreneurship#Innovation#Technology#Investment#MarketTrends#AItokens#DotcomBubble#Funding#BusinessStrategy#Profit#Success#Wealth
Avoid Copycat Mistakes
Copying strategies without understanding their context can harm startups. From the experience of a former CTO, mindless imitation of established B2B products leads to failure. Large companies aim to protect their gains, while startups focus on growth. Analyze original strategies instead of copying them blindly. Discover more about proper implementation in the provided link.
#Startup#B2B#SaaS#Strategy#Growth#Analysis#Innovation#Business#Entrepreneurship#CTO#Imitation#Failure#Success#Marketing#Learning#Education#BusinessStrategy
Disrupting Subscription Models
A potential billion-dollar startup aims to revolutionize content sales by eliminating subscription models that frustrate users wanting single purchases. Currently, 70% of subscribers cancel within 3-6 months, while content sellers hesitate to switch to one-time payments due to lower profitability. Innovations in this direction could lead to significant market changes. More details here: Fast Founder
#Startup#ContentSales#SubscriptionModel#UserExperience#BusinessStrategy#MarketInnovation#OneTimePayment#Profitability#UserRetention#Ecommerce#RevenueModel#Disruption#TechStartup#Media#DigitalContent#OnlineSales#Fintech#Investments#Entrepreneurship#InnovativeIdeas