当我阅读Django代码时,我经常在模型中看到所谓的"slug".我不太确定这是什么,但我知道它与URL有关.怎么以及什么时候应该使用这个slug-thing?
(我在本词汇表中已经阅读了它的定义.)
我有一个字符串,我想用作文件名,所以我想删除文件名中不允许使用Python的所有字符.
我宁愿比其他方面更严格,所以让我说我只想保留字母,数字和一小部分其他字符"_-.() "
.什么是最优雅的解决方案?
文件名需要在多个操作系统(Windows,Linux和Mac OS)上有效 - 它是我的库中的MP3文件,歌曲标题为文件名,并在3台机器之间共享和备份.
什么是完整的正则表达式或其他一些可以获得标题的过程:
如何将标题更改为Stack Overflow等URL的一部分?
把它变成
how-do-you-change-a-title-to-be-part-of-the-url-like-stack-overflow
Run Code Online (Sandbox Code Playgroud)
Stack Overflow上的SEO友好URL中使用了哪些?
我使用的开发环境是Ruby on Rails,但是如果还有其他一些特定于平台的解决方案(.NET,PHP,Django),我也很乐意看到它们.
我相信我(或其他读者)会在不同的平台上遇到同样的问题.
我正在使用自定义路由,我主要想知道如何更改字符串以删除所有特殊字符,它全部小写,并且所有空格都被替换.
我正在尝试在Django中创建一个SlugField.
我创建了这个简单的模型:
from django.db import models
class Test(models.Model):
q = models.CharField(max_length=30)
s = models.SlugField()
Run Code Online (Sandbox Code Playgroud)
然后我这样做:
>>> from mysite.books.models import Test
>>> t=Test(q="aa a a a", s="b b b b")
>>> t.s
'b b b b'
>>> t.save()
>>> t.s
'b b b b'
Run Code Online (Sandbox Code Playgroud)
我在期待bbbb
可能重复:
正则表达式清理(PHP)
我正面临着URL的问题,我希望能够转换可能包含任何内容的标题并将它们删除所有特殊字符,这样它们只有字母和数字,当然我想用连字符替换空格.
怎么做?我听说过很多正在使用的正则表达式(正则表达式)......
__PRE__
工作得很好,但我发现了一些失败的案例:
gen_slug('Andrés Cortez')
返回andres-cortez
而不是gen_slug('Andrés Cortez')
为什么?关于andres-cortez
参数的任何想法?
许多网站,包括这个网站,添加了显然被称为slugs的东西 - 描述性的,但据我可以说无用的文本 - 到URL的末尾.
例如,网站为此问题提供的URL是:
https://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls
但是以下URL也可以正常工作:
https://stackoverflow.com/questions/47427/
本文的重点是以某种方式使URL更加用户友好或是否还有其他一些好处?
我正在寻找"slugify"字符串"slug"的最好方法,而我目前的解决方案是基于这个配方
我已经改变了一点:
s = 'String to slugify'
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)
Run Code Online (Sandbox Code Playgroud)
有人看到这个代码有任何问题吗?它工作正常,但也许我错过了一些东西或者你知道更好的方法吗?
所以我搜索并浏览了SO上的slug标签,发现了两个引人注目的解决方案:
这只是部分解决问题的方法.我可以自己手动编写代码,但我很惊讶还没有解决方案.
那么,在C#和/或.NET中是否有一个slugify alrogithm实现正确解决了拉丁字符,unicode和其他各种语言问题?
你知道,比如myblog.com/posts/donald-e-knuth.
我应该使用内置parameterize
方法吗?
插件怎么样?我可以想象一个插件很适合处理重复的slug等.这里有一些流行的Github插件 - 有没有人对它们有任何经验?
基本上看起来slu is是一个完全解决的问题,我不会重新发明轮子.