Wie kann man prüfen, ob Text „leer“ (Leerzeichen, Tabulatoren, Zeilenumbrüche) in Python ist?

StackOverflow https://stackoverflow.com/questions/2405292

Frage

Wie kann ich testen, wenn die Zeichenfolge in Python leer ist?

Beispiel:

"<space><space><space>" leer ist, so ist

"<space><tab><space><newline><space>", so ist

"<newline><newline><newline><tab><newline>", etc.

War es hilfreich?

Lösung

yourString.isspace()

„true zurück, wenn es nur Leerzeichen in der Zeichenfolge, und es gibt mindestens ein Zeichen, andernfalls false.“

Kombiniert man dies mit einem speziellen Fall für den leeren String Handling.

Alternativ könnten Sie verwenden

strippedString = yourString.strip()

Und dann prüfen, ob strippedString leer ist.

Andere Tipps

>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [bool(not s or s.isspace()) for s in tests]
[False, True, True, True, True]
>>>

Sie möchten die isspace() Methode

  

str. isspace ()

     

true zurück, wenn es nur Leerzeichen im String sind und   gibt es zumindest ein Zeichen, andernfalls false.

Das ist auf jedem String-Objekt definiert. Hier ist ein Anwendungsbeispiel für Ihren speziellen Anwendungsfall:

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

für diejenigen, die ein Verhalten wie der Apache erwarten StringUtils.isBlank oder Guava Strings.isNullOrEmpty :

if mystring and mystring.strip():
    print "not blank string"
else:
    print "blank string"

überprüfen Sie die Länge der von der Split gegebenen Liste () -Methode.

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

oder Vergleichsausgang des Streifens () Methode mit null.

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

Hier ist eine Antwort, die in allen Fällen funktionieren soll:

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

Wenn die Variable None ist, wird es bei not sand stoppt nicht weiter bewerten (seit not None == True). Offenbar nimmt die strip()method Pflege der üblichen Fälle von Tabulator, neue Zeile, usw.

Ich bin in Ihrem Szenario unter der Annahme, ein leerer String ist eine Zeichenfolge, die wirklich leer ist oder eine, die alle Leerzeichen enthält.

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

Beachten Sie dies nicht für None nicht überprüft

Ich habe folgende:

if str and not str.isspace():
  print('not null and not empty nor whitespace')
else:
  print('null or empty or whitespace')

Um zu überprüfen, ob eine Zeichenfolge nur Leerzeichen oder Newline ist

Mit diesem einfachen Code

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)

Resemblance mit c # String statische Methode isNullOrWhiteSpace.

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top