2010-11-22 62 views
23

我正在用Python/Django構建一個網站。用戶提交標籤。每個標籤可以包含多個單詞。每個標籤都有一個ID號碼。我想確保格式稍有不同的標籤仍然被識別爲相同的標籤。Python/Django:如何從字符串中刪除多餘的空格和製表符?

例如,如果一個用戶提交了標籤「電吉他」,而另一個用戶提交了「electric  吉他」(這兩個詞之間有2個空格),我希望能夠識別它們是同一個標籤。

如何在這種情況下刪除所有額外的空格和製表符?謝謝。

回答

51

拆分,然後在一個單一的空間加入。

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

或newline =''.join(oldline.split())...花了我一分鐘的時間才發現這是一個新手。 – Framester 2011-06-17 18:12:03

+0

請注意,這將刪除字符串前後的所有空白 – andychase 2013-08-02 21:27:10

7

我會用Django的slugify方法,其中凝結空間成一個單一的儀表板和其他有用的功能:在任何空白

from django.template.defaultfilters import slugify 
+0

然後你不需要擔心大小寫等情況。 – 2010-11-22 03:35:43

+0

我認爲slugify是最好的窮舉解決方案,而像分裂和連接這樣的解決方案只能解決這個問題。我喜歡把它留給Django的開發者。 – 2010-11-22 03:38:13

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 

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

-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 
相關問題