2010-11-22 7 views
23

私はPython/Djangoでウェブサイトを構築しています。ユーザーはタグを送信します。各タグは複数の単語を含むことができます。各タグにはID番号があります。私は少し異なってフォーマットされたタグが同じタグとしてまだ認識されていることを確認したいと思います。Python/Django:余分な空白とタブを文字列から削除するには?

たとえば、1人のユーザーがタグ「エレクトリックギター」を提出し、もう1人が「電気 ギター」(2つの単語の間に2つの空白)を付けると、それらは同じタグであると認識できるようになります。

この場合、余分な空白とタブをすべて削除する方法を教えてください。ありがとう。 、空白の

from django.template.defaultfilters import slugify 

答えて

51

スプリットその後、単一のスペースに参加する:

+5

またはnewline = '' .join(oldline.split())...これは初心者のために分かります。 – Framester

+0

これは、文字列の前後の空白を削除することに注意してください – andychase

7

私は、単一のダッシュにスペースやその他の便利な機能を凝縮Djangoのslugifyメソッドを使用します。

' '.join(s.split()) 
+0

次に、大文字と小文字の区別も心配する必要はありません。 –

+0

私はslugifyが最良の徹底的な解決策だと思っていますが、分割や結合といったものはこの問題を具体的に解決します。私はそれをDjangoの開発者に任せています。 –

1

"electric guitar".split()あなたに['electric', 'guitar']を与えるだろう。だから"electric \tguitar"

20
>>> import re 
>>> re.sub(r'\s+', ' ', 'some test with  ugly whitespace') 
'some test with ugly whitespace' 
-9

以下のような多くの空白があるかもしれません:

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

だけでない単純な作業のように、機能を置き換える使用します

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

今outpurは次のようになります。

Thisistheexampleofhowtoremovespaces 

ちょっとチル......... :-)

-1

この関数は、文字列内の数字以外のすべてを削除します。私はその場所全体にそれを使用します。

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 
関連する問題