दिलचस्प पोस्ट
क्या यह ठीक है अगर मैं जावा में घुंघराले ब्रेसिज़ को छोड़ूं? जेएस दिनांक ऑब्जेक्ट से YYYYMMDD प्रारूप में स्ट्रिंग प्राप्त करें? पायथन: बाइंडिंग सॉकेट: "पता पहले से उपयोग में है" जावास्क्रिप्ट: अनक्यूट टाइप एरर: विधि 'addEventListener' की कॉल कॉल नहीं कर सकता शून्य क्या डीबगिंग के लिए सार्थक आउटपुट प्रदान करने के लिए जावास्क्रिप्ट टूस्ट्रिंग () फ़ंक्शन को ओवरराइड करना संभव है? दो अलग अलग रंगों के पाठ के साथ यूआईएलबल सब्लाइम टेक्स्ट 3 के बिल्ड सिस्टम के साथ जारी – चल रहे प्रोग्राम से इनपुट नहीं प्राप्त कर सकते हाल ही के ऐप्स से प्रोग्राम को ऐप निकालें .NET 4.0 में एक नया GAC है, क्यों? WPF उपयोगकर्ता नियंत्रण अभिभावक lxml etree xmlparser अवांछित नामस्थान हटाएं बहुआयामी सरणी पुनरावृत्ति मैं मूल प्रक्रिया की कार्यशील निर्देशिका कैसे सेट करूं? जावा पाठ फ़ाइल में पंक्ति बदलें Google Chrome मुद्रण पृष्ठ तोड़ता है

मैं व्हाइटस्पेस कैसे ट्रिम कर सकता हूँ?

क्या कोई पायथन फ़ंक्शन है जो किसी स्ट्रिंग से सफेद स्थान (रिक्त स्थान और टैब) को छूटेगा?

उदाहरण: \t example string\texample string

वेब के समाधान से एकत्रित समाधान "मैं व्हाइटस्पेस कैसे ट्रिम कर सकता हूँ?"

दोनों तरफ व्हाटस्पेस:

 s = " \ta string example\t " s = s.strip() 

दाईं तरफ श्वेत स्थान:

 s = s.rstrip() 

बाईं ओर व्हाइटस्पेस:

 s = s.lstrip() 

जैसा कि एडीज बताता है, आप इस तरह से किसी भी तरह के कार्यों में से किसी भी मनमाना पात्रों को पट्टी करने के लिए एक तर्क प्रदान कर सकते हैं:

 s = s.strip(' \t\n\r') 

यह किसी भी स्थान, \t , \n , या \r वर्णों को बाएं हाथ से, दाहिनी ओर या स्ट्रिंग के दोनों ओर पट्टी करेगा।

उपरोक्त उदाहरणों में केवल तारों के बाएं हाथ और दाएं हाथ के पक्ष से तार निकाल दें। यदि आप किसी स्ट्रिंग के बीच के वर्णों को भी निकालना चाहते हैं, तो re.sub प्रयास re.sub :

 import re print re.sub('[\s+]', '', s) 

इसे प्रिंट करना चाहिए:

 astringexample 

पायथन trim विधि को strip कहा जाता है:

 str.strip() #trim str.lstrip() #ltrim str.rstrip() #rtrim 

अग्रणी और अनुगामी सफेद स्थान के लिए:

 s = ' foo \t ' print s.strip() # prints "foo" 

अन्यथा, एक नियमित अभिव्यक्ति काम करती है:

 import re pat = re.compile(r'\s+') s = ' \t foo \t bar \t ' print pat.sub('', s) # prints "foobar" 

आप बहुत सरल और बुनियादी फ़ंक्शन का उपयोग भी कर सकते हैं: str.replace () , सफेद स्थान और टैब के साथ काम करता है:

 >>> whitespaces = " abcd ef gh ijkl " >>> tabs = " abcde fgh ijkl" >>> print whitespaces.replace(" ", "") abcdefghijkl >>> print tabs.replace(" ", "") abcdefghijkl 

सरल और आसान

 #how to trim a multi line string or a file s=""" line one \tline two\t line three """ #line1 starts with a space, #2 starts and ends with a tab, #3 ends with a space. s1=s.splitlines() print s1 [' line one', '\tline two\t', 'line three '] print [i.strip() for i in s1] ['line one', 'line two', 'line three'] #more details: #we could also have used a forloop from the begining: for line in s.splitlines(): line=line.strip() process(line) #we could also be reading a file line by line.. eg my_file=open(filename), or with open(filename) as myfile: for line in my_file: line=line.strip() process(line) #moot point: note splitlines() removed the newline characters, we can keep them by passing True: #although split() will then remove them anyway.. s2=s.splitlines(True) print s2 [' line one\n', '\tline two\t\n', 'line three '] 

कोई भी इन रेगेक्स समाधानों को अभी तक पोस्ट नहीं किया है।

मेल मिलाना:

 >>> import re >>> p=re.compile('\\s*(.*\\S)?\\s*') >>> m=p.match(' \t blah ') >>> m.group(1) 'blah' >>> m=p.match(' \tbl ah \t ') >>> m.group(1) 'bl ah' >>> m=p.match(' \t ') >>> print m.group(1) None 

खोजना (आपको "केवल रिक्त स्थान" इनपुट केस को अलग तरह से संभालना है):

 >>> p1=re.compile('\\S.*\\S') >>> m=p1.search(' \tblah \t ') >>> m.group() 'blah' >>> m=p1.search(' \tbl ah \t ') >>> m.group() 'bl ah' >>> m=p1.search(' \t ') >>> m.group() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'NoneType' object has no attribute 'group' 

यदि आप re.sub उपयोग re.sub , तो आप आंतरिक सफेद स्थान निकाल सकते हैं, जो अवांछनीय हो सकता है।

व्हाइटस्पेस में स्थान, टैब और सीआरएलएफ शामिल हैं I इसलिए हम उपयोग कर सकते हैं एक सुरुचिपूर्ण और एक लाइनर स्ट्रिंग फ़ंक्शन अनुवाद है

' hello apple'.translate(None, ' \n\t\r')

या यदि आप पूरी तरह से होना चाहते हैं

 import string ' hello apple'.translate(None, string.whitespace) 
  something = "\t please_ \t remove_ all_ \n\n\n\nwhitespaces\n\t " something = "".join(something.split()) 

आउटपुट: कृपया _ रिमोट_ऑल_वाइटस्पेस

यह स्ट्रिंग के आरंभ और अंत दोनों से सभी व्हाट्सपेस और न्यूलाइन को निकाल देगा:

 >>> s = " \n\t \n some \n text \n " >>> re.sub("^\s+|\s+$", "", s) >>> "some \n text" 

अनुवाद का प्रयास करें

 >>> import string >>> print '\t\r\n hello \r\n world \t\r\n' hello world >>> tr = string.maketrans(string.whitespace, ' '*len(string.whitespace)) >>> '\t\r\n hello \r\n world \t\r\n'.translate(tr) ' hello world ' >>> '\t\r\n hello \r\n world \t\r\n'.translate(tr).replace(' ', '') 'helloworld' 

आम तौर पर, मैं निम्नलिखित विधि का उपयोग कर रहा हूं:

 >>> myStr = "Hi\n Stack Over \r flow!" >>> charList = [u"\u005Cn",u"\u005Cr",u"\u005Ct"] >>> import re >>> for i in charList: myStr = re.sub(i, r"", myStr) >>> myStr 'Hi Stack Over flow' 

नोट: यह केवल "\ n", "\ r" और "\ t" केवल निकालने के लिए है यह अतिरिक्त रिक्त स्थान को हटा नहीं करता है

 content = "this is \nText\r\r\t\n. This is new text" 

\n , \r , \t , बेहतर तरीके से निकालने के लिए:

 data = "" for i in content: data += i.strip("\n").strip("\t").strip("\r").replace("\n","").replace("\t","").replace("\r","") 

आउटपुट:

 >>> data 'this is Text. This is new text' 

उपरोक्त वर्णों को निकालने का यह सबसे आसान तरीका है। अगर कोई अजगर पैकेज या लाइब्रेरी उपलब्ध है, तो कृपया मुझे बताएं और यह भी सुझाव दें कि वर्ण / ?? को कैसे निकालना है, एन्टर दबाए जाने के कारण।