заменить пробелы тире и удалить префикс из строки

1

Im использует это для удаления пробелов и специальных символов и преобразования символов в нижний регистр:

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

• Я хочу заменить пробелы: '-'

• если строка начинается со слова: '' remove ''

так: музыка битлов!

будет: beatles-music

любая помощь очень ценится

спасибо J

Теги:

3 ответа

14
Лучший ответ
artistName = artistName.replace(' ', '-').lower()
if artistName.startswith('the-'):
    artistName = artistName[4:]
artistName = ''.join(e for e in artistName if e.isalnum() or e == '-')
  • 3
    ...startswith('the-') будет лучше; художника можно назвать теодором ;-)
2

Похоже, вы хотите сделать машинный читаемый слизень. Использование библиотеки для этой функции избавит вас от многих головных болей. python-slugify делает то, что вы просите, и кучу других вещей, о которых вы, возможно, даже не думали.

1

Это лучше всего сделать с помощью набора регулярных выражений, чтобы вы могли легко добавить к нему со временем.

Не уверен в синтаксисе python, но если бы это был perl, вы бы сделали что-то вроде:

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

Похоже, что у python есть небольшое небольшое руководство для регулярных выражений: http://docs.python.org/howto/regex.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню