Python / Django: Как удалить лишние пробелы и табуляции из строки? - PullRequest
24 голосов
/ 22 ноября 2010

Я создаю сайт с Python / Django.Пользователи отправляют теги.Каждый тег может содержать несколько слов.Каждый тег имеет идентификационный номер.Я хочу убедиться, что теги, которые отформатированы немного по-другому, все еще распознаются как один и тот же тег.

Например, если один пользователь отправил тег «электрогитара», а другой - «электрогитара» (2 белыхпробелы между двумя словами) Я хочу, чтобы они могли распознать один и тот же тег.

Как в этом случае удалить все лишние пробелы и символы табуляции?Спасибо.

Ответы [ 6 ]

51 голосов
/ 22 ноября 2010

Разбить любой пробел, затем объединить в один пробел.

' '.join(s.split())
20 голосов
/ 22 ноября 2010
>>> import re
>>> re.sub(r'\s+', ' ', 'some   test with     ugly  whitespace')
'some test with ugly whitespace'
7 голосов
/ 22 ноября 2010

Я бы использовал метод slugify Джанго, который объединяет пробелы в одну черту и другие полезные функции:

from django.template.defaultfilters import slugify
1 голос
/ 22 ноября 2010

"electric guitar".split() даст вам ['electric', 'guitar'].Так будет "electric \tguitar".

0 голосов
/ 19 июня 2013

Эта функция удаляет все, что не является цифрой в строке.Я использую это повсюду.

def parseInt(string):
    if isinstance(string, (str, int, unicode)):
        try:
            digit = int(''.join([x for x in string if x.isdigit() ]))
        except ValueError:
            return False
        else:
            return digit
    else:
        return False   
0 голосов
/ 23 декабря 2010

Там может быть много пробелов, как показано ниже:

var = "         This      is the example  of how to remove spaces   "

Просто выполните простую задачу, например, используйте функцию замены:

realVar = var.replace(" ",'')

Теперь результат будет:

Thisistheexampleofhowtoremovespaces 

Just Chill .........: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...