用短划线替换空格并从字符串中删除前缀

时间:2011-05-02 19:12:15

标签: python

我用它来删除空格和特殊字符并将字符转换为小写:

''.join(e for e in artistName if e.isalnum()).lower()

•我想用' - '

替换空格

•如果字符串以单词开头:'the'删除'the'

所以:披头士音乐!

将是:beatles-music

非常感谢任何帮助

感谢 Ĵ

4 个答案:

答案 0 :(得分:17)

artistName = artistName.replace(' ', '-').lower()
if artistName.startswith('the-'):
    artistName = artistName[4:]
artistName = ''.join(e for e in artistName if e.isalnum() or e == '-')

答案 1 :(得分:2)

听起来你想制作机器可读的slu ..使用库来实现此功能可以省去很多麻烦。 python-slugify完成了你所要求的以及你可能根本没想过的其他一些事情。

答案 2 :(得分:1)

这最好用一堆正则表达式来完成,这样你就可以随着时间的推移轻松添加它。

不确定python语法,但如果它是perl你会做类似的事情:

s/^The //g;  #remove leading "The "
s/\s/-/g;    #replace whitespaces with dashes

看起来python对正则表达式有一个很好的小方法:http://docs.python.org/howto/regex.html

答案 3 :(得分:0)

Python 3.9开始,您还可以使用removeprefix

'The beatles music'.replace(' ', '-').lower().removeprefix('the-')
# 'beatles-music'