जांचें कि क्या स्ट्रिंग में केवल व्हाट्सएप है


220

अगर एक स्ट्रिंग में केवल व्हाट्सएप हो तो मैं कैसे परीक्षण कर सकता हूं?

उदाहरण के तार:

  • " " (स्पेस, स्पेस, स्पेस)

  • " \t \n " (स्पेस, टैब, स्पेस, न्यूलाइन, स्पेस)

  • "\n\n\n\t\n" (newline, newline, newline, tab, newline)

जवाबों:


312

str.isspace()विधि का प्रयोग करें :

लौटें Trueयदि स्ट्रिंग में केवल व्हाट्सएप पात्र हैं और कम से कम एक वर्ण है, Falseअन्यथा।

यदि यूनिकोड चरित्र डेटाबेस ( यूनिकोडेटा देखें ) में एक चरित्र व्हाट्सएप है , या तो इसकी सामान्य श्रेणी Zs ("विभाजक, स्थान") है, या इसका द्विदिश वर्ग WS, B, या S में से एक है।

खाली स्ट्रिंग को संभालने के लिए एक विशेष मामले के साथ मिलाएं।

वैकल्पिक रूप से, आप उपयोग कर सकते हैं str.strip()और जांचें कि क्या परिणाम खाली है।


यह पायथन 2.4 में विफल रहता है यदि स्ट्रिंग में गैर-ब्रेकिंग स्पेस, चारकोड U+00A0या ALT+160। हालाँकि, पाइथन 2.7 में निश्चित दिखता है।
कुंभा

18
ध्यान रखें कि यह जांच नहीं की जाती Noneहै, या''
पार्थ मेहरोत्रा

1
अजगर 2.7.13 में, आइसस्पेस () अंतरिक्ष के रूप में गैर-ब्रेकिंग स्पेस पर विचार करेगा। अच्छा!
चांग जूल 28'17

आप खाली तारों को भी बाहर करना चाह सकते हैं, उस स्थिति में आप ऐसा कर सकते हैं:if len(str) == 0 or str.isspace():
जो

@ जो len(my_str) == 0भी लिखा जा सकता है not my_str
एएमसी


32

आप isspace()विधि का उपयोग करना चाहते हैं

str। isspace ()

यदि स्ट्रिंग में केवल व्हाट्सएप पात्र हैं तो सही लौटें और कम से कम एक वर्ण हो, अन्यथा गलत।

यह हर स्ट्रिंग ऑब्जेक्ट पर परिभाषित किया गया है। यह आपके विशिष्ट उपयोग के मामले के लिए एक उपयोग उदाहरण है:

if aStr and (not aStr.isspace()):
    print aStr

क्या यह वर्तमान शीर्ष और स्वीकृत उत्तर के समान समाधान नहीं है ?
एएमसी



6

विभाजन () विधि द्वारा दी गई सूची की लंबाई की जांच करें।

if len(your_string.split()==0:
     print("yes")

या अशक्त के साथ पट्टी () विधि के आउटपुट की तुलना करें।

if your_string.strip() == '':
     print("yes")

1
स्ट्रिंग को विभाजित करने का कोई कारण नहीं है, स्ट्रिंग्स len()पर काम करता है। इसके अलावा, ओपी खाली स्ट्रिंग के लिए परीक्षण करने के लिए नहीं कह रहा था, लेकिन एक स्ट्रिंग के लिए जो सभी रिक्त स्थान था। आपका दूसरा तरीका हालांकि बुरा नहीं है। इसके अलावा, सशर्त के आसपास के आपके परिजनों को अजगर की जरूरत नहीं है।
नील

1
अजीब तरह से, पहली विधि वास्तव में वर्णों में से किसी की तुलना में जांचने का एक अच्छा तरीका है , अगर आप प्रतिस्थापित ==0करते हैं==1
मैड फिजिसिस्ट

if len(your_string.split())==0:-> if not your_string.split():, if your_string.strip() == '':-> if not your_string.strip():। किसी भी मामले में, पहला मौजूदा समाधानों से नीच है, और दूसरा पहले से ही अन्य उत्तरों में उल्लेख किया गया है।
एएमसी

3

यहाँ एक जवाब है कि सभी मामलों में काम करना चाहिए:

def is_empty(s):
    "Check whether a string is empty"
    return not s or not s.strip()

यदि चर कोई नहीं है, तो यह not sआगे (क्योंकि not None == True) का मूल्यांकन नहीं करेगा और न ही रुकेगा । स्पष्ट रूप से, strip()विधि टैब, न्यूलाइन आदि के सामान्य मामलों का ध्यान रखती है।


क्योंकिnot None == True यह शायद अभी कहने के लिए स्पष्ट है None is False। इसके अलावा, ==इन तुलनाओं के लिए इस्तेमाल नहीं किया जाना चाहिए।
एएमसी

2

मैं आपके परिदृश्य में मान रहा हूं, एक खाली स्ट्रिंग एक स्ट्रिंग है जो वास्तव में खाली है या एक है जिसमें सभी सफेद स्थान हैं।

if(str.strip()):
    print("string is not empty")
else:
    print("string is empty")

ध्यान दें कि यह जांच नहीं करता है None


क्या यह पहले से ही मौजूदा उत्तरों द्वारा कवर नहीं किया गया है?
एएमसी


1

यह जांचने के लिए कि क्या एक स्ट्रिंग सिर्फ एक स्थान या न्यूलाइन है

इस सरल कोड का उपयोग करें

mystr = "      \n  \r  \t   "
if not mystr.strip(): # The String Is Only Spaces!
    print("\n[!] Invalid String !!!")
    exit(1)
mystr = mystr.strip()
print("\n[*] Your String Is: "+mystr)

1

सी # स्ट्रिंग स्थैतिक विधि के साथ समानता है NullOrWhiteSpace।

def isNullOrWhiteSpace(str):
  """Indicates whether the specified string is null or empty string.
     Returns: True if the str parameter is null, an empty string ("") or contains 
     whitespace. Returns false otherwise."""
  if (str is None) or (str == "") or (str.isspace()):
    return True
  return False

isNullOrWhiteSpace(None) -> True // None equals null in c#, java, php
isNullOrWhiteSpace("")   -> True
isNullOrWhiteSpace(" ")  -> True

आप बसreturn (str is None) or (str == "") or (str.isspace())
अलेक्जेंडर - मोनिका

ओह, और दोनों Noneऔर ""झूठे हैं, इसलिए आप बस कर सकते हैं:return not str or str.isspace()
अलेक्जेंडर - मोनिका

यह काफी असंसदीय है।
एएमसी

@AMC आप इसे विस्तार से बता सकते हैं, मुझे समझ में नहीं आ रहा है कि आप क्या कहना चाह रहे हैं।
ब्रॉडबैंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.