如何测试字符串是否只包含空格?

字符串的例子:

" "(空格,空格,空格) " \t \n "(空格,制表符,空格,换行符,空格) "\n\n\ t\n"(换行符,换行符,制表符,换行符)


当前回答

这里有一个在所有情况下都适用的答案:

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

如果变量为None,它将停止在not,并且不再进一步求值(因为not None == True)。显然,strip()方法处理制表符、换行符等常见情况。

其他回答

检查split()方法给出的列表的长度。

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

或 比较strip()方法的输出与null。

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

我假设在您的场景中,空字符串是真正为空的字符串或包含所有空白的字符串。

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

注意,这不会检查None

使用str.isspace()方法:

如果字符串中只有空格字符且至少有一个字符,则返回True,否则返回False。 如果一个字符在Unicode字符数据库(参见unicodedata)中,它的一般类别是Zs(“分隔符,空格”),或者它的双向类是WS、B或S之一,那么它就是空白字符。

将其与处理空字符串的特殊情况结合起来。

或者,您可以使用str.strip()并检查结果是否为空。

对于那些期望类似apache StringUtils的行为的人。是空白或番石榴弦。isNullOrEmpty:

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

检查字符串是否是空格或换行符

使用下面的简单代码

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)