Вы можете взглянуть на Django framework , чтобы узнать, как они создают «слаг» из произвольного текста. Плагин подходит для URL и имен файлов.
Текстовые утилиты Django определяют функцию, slugify()
, это, вероятно, золотой стандарт для такого рода вещей. По сути, их код следующий.
def slugify(value):
"""
Normalizes string, converts to lowercase, removes non-alpha characters,
and converts spaces to hyphens.
"""
import unicodedata
value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
value = unicode(re.sub('[^\w\s-]', '', value).strip().lower())
value = unicode(re.sub('[-\s]+', '-', value))
Есть еще кое-что, но я не упомянул об этом, так как это не касается слизи, а спасения.