使用正则表达式用连字符替换空格

时间:2014-01-27 13:51:30

标签: python regex django

我的网址目前看起来像www.example.com/explore/above%20&%20beyond

我想要一个像www.example.com/explore/above-and-beyond

这样的SEO友好网址

这是我的 urls.py

url(r'^explore/(?P<dj_name>[a-zA-Z0-9 \'&-]+)/$', views.explore_dj, name='explore_dj')

如何使用正则表达式将%20 -替换为&and替换为SlugField

我理所当然地知道我应该使用{{1}}来实现这一点,但是我必须删除我的数据库表以对模型进行更改,这不是一个选项。

2 个答案:

答案 0 :(得分:3)

在这种情况下我会做的是以下内容。如果您不坚持使用正则表达式,您可能需要考虑它。

'www.example.com/explore/above%20&%20beyond'.replace('%20','-').replace('&','and')

答案 1 :(得分:-1)

re.sub(r'&','and',re.sub(r'%20','-',url_string))

>>> url_string = 'www.example.com/explore/above%20&%20beyond'
>>> url_string
'www.example.com/explore/above%20&%20beyond'
>>> re.sub(r'&','and',re.sub(r'%20','-',url_string))
'www.example.com/explore/above-and-beyond'