Python中的字符串段塞化

我正在寻找“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简易安装时,请务必选择正确的代码

发表评论