Django:autoslug>自定义slugifi

2024-06-16 11:54:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个问题。我正在尝试创建一个自定义的slagify函数。我用django.autoslug。由于autoslug文档,我能够创建一个自定义的缓震器,但它需要改进,我不知道如何认识到这一点。在

所以我有一个字符串(书名),即.NET Framework 4.0 with C# & VB in VisualStudio 2010。我想让它看起来像这样:dotnet-framework-4point0-with-cshapr-and-vb-in-visualstudio-2010

我当前的函数如下:

def custom_slug(value, *args, **kwargs):
    associations_dict = {'#':'sharp', '.':'dot', '&':'and'}
    for searcg_char in associations_dict.keys():
       if search_char in value:
          value = value.replace(search_char, associations_dict[search_char])
    return def_slugify(value)

如您所见,我的函数将所有点.替换为'dot'。所以我的字符串将被改为dotnet-framework-4dot0-with-csharp-and-vb-in-visualstudio-2010

我建议,我应该使用RegEx,但我不知道如何做到这一点,以及如何用正确的“点/点替换”替换匹配的字符串

主意?!在

对不起,英语不好


Tags: and函数字符串insearchvaluewithframework
1条回答
网友
1楼 · 发布于 2024-06-16 11:54:09
import re
point = re.compile( r"(?<=\d)\.(?=\d)" )
point.sub( value, "point" )

更改.应该是"point",然后执行str.replace来更改其他的。在

说明

point匹配夹在两个数字之间的.。在

(?<=spam)ham(?=eggs)是一个(正的)lookaround。它的意思是“匹配ham,只要它前面有spam,后面跟着eggs”。换句话说,它告诉regex引擎“环顾”它匹配的模式。在

相关问题 更多 >