2010-11-22 15 views
23

मैं पाइथन/Django के साथ एक वेबसाइट का निर्माण कर रहा हूँ। उपयोगकर्ता टैग जमा करते हैं। प्रत्येक टैग में कई शब्द हो सकते हैं। प्रत्येक टैग में एक आईडी नंबर होता है। मैं यह सुनिश्चित करना चाहता हूं कि टैग को थोड़ा अलग रूप से प्रारूपित किया गया हो, फिर भी एक ही टैग के रूप में पहचाना जा रहा है।पायथन/Django: एक स्ट्रिंग से अतिरिक्त सफेद रिक्त स्थान और टैब कैसे निकालें?

उदाहरण के लिए, यदि एक उपयोगकर्ता ने "इलेक्ट्रिक गिटार" टैग सबमिट किया है और दूसरा सबमिट किया गया है "इलेक्ट्रिक   गिटार" (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

मुझे लगता है कि स्लगिफ़ाई सबसे अच्छा समाधान है, जबकि विभाजन और जुड़ने जैसी चीजें, विशेष रूप से इस समस्या को हल करती हैं। मैं इसे 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 
संबंधित मुद्दे