Django,在re.sub中调用函数

时间:2014-07-31 21:16:56

标签: python regex django

我在自定义模板标签中有这一行:

value = re.sub(r'(.*)\(bkz: (.*)\b\)',r'\1(bkz: <a href="/baslik/\2">\2</a>)',value)

我想在我的链接中使用slugify函数来强化\ 2。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

re.sub()将字符串或函数作为参数的第二个,你可以定义一个函数来做你想要的事情,下面是一个非常简单的例子

value = "aaa1aaa"
def slugifier(match_object):
    return 'X'

value = re.sub('\d+', slugifier, value)
>> 'aaaXaaa'

正如旁注,slugify将转义\2并生成一个空字符串。