मैं पायथन में प्रमुख व्हाट्सएप कैसे निकालूं?


181

मेरे पास एक पाठ स्ट्रिंग है जो कई स्थानों से शुरू होती है, 2 और 4 के बीच बदलती है।

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

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

जवाबों:


319

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

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

संपादित करें

जैसा कि बाल्हा ने टिप्पणियों में बताया , स्ट्रिंग की शुरुआत से केवल रिक्त स्थान को हटाने के लिए, lstrip(' ')का उपयोग किया जाना चाहिए:

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

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


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

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

3
वर्षों तक प्रोग्रामिंग की गई और यह नहीं पता था, जीवनरक्षक
क्रिस हॉक्स

3
नए पायथन प्रोग्रामर्स के लिए यह नोट करना उपयोगी हो सकता है कि अजगर में तार अपरिवर्तनीय हैं, इसलिए यदि आप एक स्ट्रिंग 'string_a' के साथ काम कर रहे हैं, तो आप सोच सकते हैं string_a.lstrip () स्ट्रिंग को स्वयं बदल देगा, लेकिन वास्तव में आप string_a.lstrip () के मान को या तो स्वयं या एक नए चर को निर्दिष्ट करने की आवश्यकता है, जैसे "string_a = string_a.lstrip ()"।
क्षेत्र

2
नोट: जैसा कि लैस्ट्रिप () है वहाँ भी स्ट्रिप () और रैस्ट्रिप ()
अलेक्जेंडर स्टोह

87

फ़ंक्शन stripएक स्ट्रिंग की शुरुआत और अंत से व्हाट्सएप को हटा देगा।

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

पर सेट my_strहो जाएगा "text"


18

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

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

यह ध्यान देने योग्य है कि यह मध्यम अंतरिक्ष के साथ प्रिंट करता'Hello World' है, किसी को भी आश्चर्य हो रहा है, मुझे लगता है कि इसे नीचे वोट दिया गया है क्योंकि मूल प्रश्न विशेष रूप से अग्रणी रिक्त स्थान को हटाने के लिए कह रहा था ।
conapart3

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

@mbrandeis यह कथन यहाँ कैसे प्रासंगिक है?
मिल्कीवेय 90

12

एक निश्चित चरित्र से पहले सब कुछ हटाने के लिए, एक नियमित अभिव्यक्ति का उपयोग करें:

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

पहले 'a' तक सब कुछ हटाने के लिए। [^a]आपको किसी भी वर्ण वर्ग से बदला जा सकता है, जैसे शब्द अक्षर।


3
मुझे लगता है कि आदमी ने "सबसे आसान और सरल तरीका" के लिए कहा
नोप

10
यह सच है, लेकिन उन्होंने यह भी (शायद अनजाने में) एक और सामान्य समस्या के लिए समाधान के लिए कहा, "यानी एक निश्चित चरित्र के लिए सब कुछ हटा दें?", और यह वह सामान्य समाधान है।
cjs

1

यह सवाल मल्टीलाइन स्ट्रिंग्स को संबोधित नहीं करता है, लेकिन यहां बताया गया है कि आप पायथन के मानक पुस्तकालय टेक्स्टवैप मॉड्यूल का उपयोग करके एक मल्टीलाइन स्ट्रिंग से प्रमुख व्हाट्सएप कैसे निकालेंगे । अगर हमारे पास एक स्ट्रिंग है जैसे:

s = """
    line 1 has 4 leading spaces
    line 2 has 4 leading spaces
    line 3 has 4 leading spaces
"""

अगर हम print(s)उत्पादन की तरह होगा:

>>> print(s)
    this has 4 leading spaces 1
    this has 4 leading spaces 2
    this has 4 leading spaces 3

और अगर हमने इस्तेमाल किया textwrap.dedent:

>>> import textwrap
>>> print(textwrap.dedent(s))
this has 4 leading spaces 1
this has 4 leading spaces 2
this has 4 leading spaces 3
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.