如何在Python中检查文本是否“为空”(包含空格、制表符和换行符)?


在本文中,我们将重点介绍如何在Python中检查文本是否为空(包含空格、制表符和换行符)。

第一种方法是使用内置字符串库的isspace()方法。isspace()方法用于确定字符串是否只包含空格或包含其他字符。

如果给定的字符串仅由空格组成,则此方法返回true;否则,返回false。即使字符串包含't'和'n'之类的字符,该方法也会返回true。

示例

在下面的程序中,我们取三个不同的字符串,并使用isspace()方法找出它们是否只包含空格

str1 = " "
str2 = "         DAS"
str3 = "\n\t"

print("Checking whether the given string'",str1,"'contains only spaces")
print(str1.isspace())

print("Checking whether the given string'",str2,"'contains only spaces")
print(str2.isspace())

print("Checking whether the given string'",str3,"'contains only spaces")
print(str3.isspace())

输出

上面示例的输出如下所示

Checking whether the given string' 'contains only spaces
True
Checking whether the given string' DAS 'contains only spaces
False
Checking whether the given string'
      'contains only spaces
True

使用正则表达式

第二种方法涉及使用正则表达式。re库的search方法使用正则表达式“^\s*$”,如果字符串只包含空格则返回true,如果字符串包含任何其他字符则返回false。

示例1

在下面的程序中,我们取三个不同的字符串,并使用正则表达式“^\s*$”和re库的search方法找出它们是否只包含空格

import re
str1 = " "
str2 = " DAS"
str3 = "\n\t"

print("Checking whether the given string'",str1,"'contains only spaces")
if not str1 or re.search("^\s*$", str1):
   print('true')
else:
   print('false')
   
print("Checking whether the given string'",str2,"'contains only spaces")
if not str2 or re.search("^\s*$", str2):
   print('true')
else:
   print('false')
   
print("Checking whether the given string'",str3,"'contains only spaces")
if not str3 or re.search("^\s*$", str3):
   print('true')
else:
   print('false')

输出

上面示例的输出如下所示

Checking whether the given string' 'contains only spaces
true
Checking whether the given string' DAS 'contains only spaces
false
Checking whether the given string'
            'contains only spaces
true

示例2

为了只匹配空白字符,我们也可以使用正则表达式元字符\s调用re.match(regex, string),如下所示:“^\s*$

import re
print(bool(re.match('^\s+$', ' abc')))
print(bool(re.match('^\s+$', ' ')))

输出

以下是上述代码的输出

False
True

使用len()函数

第三种方法是使用内置的len()函数。必须确定给定字符串的长度。如果字符串的长度为0,则表示字符串为空或仅包含空白字符;否则,字符串包含其他字符。

示例

在下面的示例中,我们使用len()方法检查给定的字符串是否为空。

str1 = " "
str2 = "           DAS"
str3 = ""

print("Checking whether the given string'",str1,"'is empty")
if len(str1) == 0:
   print('true')
else:
   print('false')
   
print("Checking whether the given string'",str2,"'is empty")
if len(str2) == 0:
   print('true')
else:
   print('false')
   
print("Checking whether the given string'",str3,"'is empty")
if len(str3) == 0:
   print('true')
else:
   print('false')

输出

上面示例的输出如下所示

Checking whether the given string' 'is empty
false
Checking whether the given string' DAS 'is empty
false
Checking whether the given string' 'is empty
true

使用strip()函数

第四种方法是使用内置的strip()函数。strip()函数删除字符串中所有不必要的空格。要确定字符串是否只包含空格,请将修剪后的字符串与原始字符串进行比较;如果它们相同,则字符串只包含空格或为空。

示例

在下面的程序中,我们使用strip()方法并将其与实际字符串进行比较,来检查给定的字符串是否只包含空格。

import re
str1 = " "
str2 = " DAS"
str3 = ""

print("Checking whether the given string'",str1,"'contains only spaces")
if str1 and str1.strip():
   print('false')
else:
   print('true')
   
print("Checking whether the given string'",str2,"'contains only spaces")
if str2 and str2.strip():
   print('false')
else:
   print('true')
   
print("Checking whether the given string'",str3,"'contains only spaces")
if str3 and str3.strip():
   print('false')
else:
   print('true')

输出

上面示例的输出如下所示

Checking whether the given string' 'contains only spaces
true
Checking whether the given string' DAS 'contains only spaces
false
Checking whether the given string' 'contains only spaces
true

更新于:2022年12月7日

4K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告