我正在寻找“slug”字符串的最佳方法,即“slug”是什么,我目前的解决方案就是基于这个配方
我将其稍作修改为:
s='String to slagify'
slug=unicodedata.normalize('NFKD',s)
slug=slug.encode('ascii','ignore').lower()
slug=re.sub(r'[^a-z0-9]+','-',slug.strip('-'))
slug=re.sub(r'[-]+','-',slug)
有人看到这个代码有问题吗?它工作得很好,但也许我遗漏了什么,或者你知道更好的方法吗
有一个名为python slugify
的python包,它在slugify方面做得非常好:
pip安装python slugify
工作原理如下:
从Slagify导入Slagify
txt=”文件;这是一个测试--“测试”;
slugify=txt
self.assertEquals(r,“this-is-a-test”)
txt=”文件;这是一个“测试”;
r=slugify(txt)
self.assertEquals(r,“this-is-a-test”)
txt='C'est déjál\'té
r=slugify(txt)
自评资格(r,“cest deja lete”)
txt='NíN hǎo。Wǒshìzhōng guórén'
r=slugify(txt)
自评资格(r,“年好我市中国人”)
txt='kццюцц'
r=slugify(txt)
self.assertEquals(r,“kompiuter”)
txt='jaja--lol-méméoo--a'
r=slugify(txt)
self.assertEquals(r,“jaja-lol-mememoo-a”)
请参阅更多示例
这个包比你发布的要多一些(看看源代码,它只是一个文件)。该项目仍然处于活动状态(在我最初回答之前2天更新,七年后(最后检查2020-06-30),它仍然得到更新)
小心:还有第二个软件包,名为slagify
。如果两者都有,可能会出现问题,因为它们的导入名称相同。刚刚命名为slagify
的并没有完成我快速检查的所有任务:";我很高兴变成了
”;“我很高兴”(应该是
“ich heisse”
),因此在使用pip
或简易安装时,请务必选择正确的代码