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


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

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

如果给定的字符串仅由空格组成,则此方法返回 True;否则,返回 False。即使字符串包含像 t 和 n 这样的字符,该方法也会返回 True。

示例

在下面给出的程序中,我们获取了 3 个不同的字符串,并使用 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

在下面给出的程序中,我们获取了 3 个不同的字符串,并使用正则表达式“^\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

为了仅匹配空白字符,我们还可以使用 re.match(regex, string) 并使用正则表达式元字符 \s,如下所示:“^\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 后的字符串与原始字符串进行比较;如果它们相同,则字符串仅包含空格或为空。

示例

在下面给出的程序中,我们使用 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-07

4K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告