2009-06-06 17 views
105

मैं एक पाठ स्ट्रिंग है कि रिक्त स्थान की संख्या के साथ शुरू होता है, अग्रणी सफेद स्थान को निकालना सबसे आसान तरीका क्या है 2 & के बीच 4.मैं पायथन में अग्रणी व्हाइटस्पेस को कैसे हटा सकता हूं?

अलग है? (। यानी एक निश्चित चरित्र से पहले सब कुछ निकालना चाहते हैं?)

" Example" -> "Example" 
" Example " -> "Example " 
" Example" -> "Example" 

उत्तर

205

lstrip() विधि शुरुआत प्रमुख व्हाइटस्पेस, एक स्ट्रिंग पर न्यू लाइन और टैब वर्ण निकाल देगा:

>>> '  hello world!'.lstrip() 
'hello world!' 

संपादित

As balpha pointed out in the commentsको हटाने के लिए केवल स्ट्रिंग की शुरुआत से रिक्त स्थान, lstrip(' ') का उपयोग किया जाना चाहिए:

>>> ' hello world with 2 spaces and a tab!'.lstrip(' ') 
'\thello world with 2 spaces and a tab!' 

संबंधित प्रश्न:

+6

नोट, हालांकि, कि lstrip जबकि निकालें प्रमुख * खाली स्थान के * जो और अधिक हो सकता है कि रिक्त स्थान (टैब्स आदि)। आमतौर पर यह वही है जो आप चाहते हैं। यदि आप केवल रिक्त स्थान और रिक्त स्थान को हटाना चाहते हैं, तो "bla" कॉल करें। Lstrip ("") – balpha

+1

@balpha: उस बिंदु के लिए धन्यवाद! मैंने जवाब में इसे जोड़ा है। – coobird

+2

वर्षों से प्रोग्रामिंग कर रहा है और यह नहीं पता था, lifesaver –

52

समारोह strip शुरुआत और एक स्ट्रिंग के अंत से सफेद स्थान को निकालना होगा।

my_str = " text " 
my_str = my_str.strip() 

"text" को my_str सेट हो जाएगा।

re.sub(r'^[^a]*', '') 

पहले 'एक' अप करने के लिए सब कुछ को हटाने के लिए:

+0

http://docs.python.org/library/string.html#string.strip – bernie

+1

उत्तर बिल्कुल सही लेकिन अच्छा जोड़ नहीं है। +1 – Glycerine

8

एक निश्चित चरित्र से पहले एक रेगुलर एक्सप्रेशन सब कुछ निकालने के लिए, का उपयोग करें। [^a] को आपके द्वारा पसंद की जाने वाली किसी भी चरित्र श्रेणी के साथ प्रतिस्थापित किया जा सकता है, जैसे शब्द वर्ण।

+2

मैं आदमी "के लिए सबसे आसान और सबसे आसान तरीका है" – Nope

+8

यह सच है के लिए कहा लगता है, लेकिन वह भी किया था (शायद inadvertantly) एक अधिक सामान्य समस्या है, के लिए समाधान के लिए पूछना "यानी। एक निश्चित चरित्र से पहले सब कुछ निकालना चाहते हैं?", और यह अधिक सामान्य समाधान है। –

6

यदि आप शब्द के पहले और पीछे सफेद जगहों को काटना चाहते हैं, लेकिन बीच में रखें।
आप इस्तेमाल कर सकते हैं:

word = ' Hello World ' 
stripped = word.strip() 
print(stripped) 
+0

यह ध्यान देने योग्य है कि यह _does_ प्रिंट 'हैलो वर्ल्ड' मध्य स्थान के साथ बरकरार है, किसी को भी सोचने के लिए, मुझे लगता है कि इसे वोट दिया गया है क्योंकि मूल प्रश्न विशेष रूप से _leading_ रिक्त स्थान को हटाने के लिए कह रहा था। – conapart3

+0

'प्रिंट' एक फ़ंक्शन नहीं है।उन ब्रैकेट आवश्यक नहीं हैं, लेकिन इसे फ़ंक्शन कॉल की तरह दिखते हैं। –

+1

https://docs.python.org/3/whatsnew/3.0.html प्रिंट एक फ़ंक्शन प्रिंट स्टेटमेंट को प्रिंट() फ़ंक्शन के साथ प्रतिस्थापित किया गया है, जिसमें कीवर्ड तर्कों के साथ अधिकांश विशेष वाक्यविन्यास को प्रतिस्थापित करने के लिए किया गया है पुराना प्रिंट स्टेटमेंट (पीईपी 3105)। – mbrandeis

संबंधित मुद्दे